#466. Adopt existing subtyping tests to NNBD
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A01_t01.dart
index d83715b..06eadc8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A01_t01.dart
@@ -25,11 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A01_t02.dart
index 970627c..86c828b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A01_t02.dart
@@ -25,11 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A01_t03.dart
index b9ddd6f..0e3ca6a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A01_t03.dart
@@ -25,11 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A02_t01.dart
index 98959e5..10ab629 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A02_t01.dart
@@ -26,13 +26,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A02_t02.dart
index 0087663..460a398 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A02_t02.dart
@@ -26,13 +26,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A02_t03.dart
index 6ff1fcd..f260c44 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A02_t03.dart
@@ -26,13 +26,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A03_t01.dart
index 09d8084..d818ebc 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A03_t01.dart
@@ -26,13 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A03_t02.dart
index 98529b0..829392b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A03_t02.dart
@@ -26,13 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A03_t03.dart
index cccb8df..4287d25 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A03_t03.dart
@@ -26,13 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A04_t01.dart
index 7a2d62a..c9ddca3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A04_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A04_t02.dart
index d1f3d90..c47b5bf 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A04_t02.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A04_t03.dart
index 4763e6a..48c9d24 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A04_t03.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A05_t01.dart
index 9d19c21..24ee09a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A05_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A05_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A05_t02.dart
index f311c97..4ed52ec 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A05_t02.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A05_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A05_t03.dart
index feb8866..e3af10e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A05_t03.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A06_t01.dart
index d00bfa7..a519af1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A06_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A06_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A06_t02.dart
index 97735cd..4f3f569 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A06_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A06_t02.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A06_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A06_t03.dart
index 2e6f210..ec1781a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A06_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A06_t03.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A07_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A07_t01.dart
index f6c0c5f..2a017b9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A07_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A07_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A07_t02.dart
index 1d82a11..cfaec2f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A07_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A07_t02.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A07_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A07_t03.dart
index 11065d9..7bd300d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A07_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A07_t03.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A08_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A08_t01.dart
index c2b5937..c19d87d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A08_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A08_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A08_t02.dart
index a19643b..bd8de16 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A08_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A08_t02.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A08_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A08_t03.dart
index f07cd5d..e46acd2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A08_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A08_t03.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A09_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A09_t01.dart
index b145d41..0652fe9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A09_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A09_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A09_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A09_t02.dart
index f0d7eed..648eeca 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A09_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A09_t02.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A09_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A09_t03.dart
index a1408a6..f567867 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A09_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A09_t03.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A10_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A10_t01.dart
index 96d8e64..95b6de0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A10_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A10_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A10_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A10_t02.dart
index 2591ade..cfb31cb 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A10_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A10_t02.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A10_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A10_t03.dart
index 8ac382f..dcd9728 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A10_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A10_t03.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A11_t01.dart
index 9ec656d..a1f24ac 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A11_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A11_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A11_t02.dart
index 8fcacb8..4198c86 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A11_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A11_t02.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A11_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A11_t03.dart
index 8485d1b..203aad0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A11_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A11_t03.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A12_t01.dart
index 396f8af..a5a8aa3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A12_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A12_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A12_t02.dart
index 4c766e1..07c16b1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A12_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A12_t02.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A12_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A12_t03.dart
index 8a9aa62..dc17e62 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A12_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A12_t03.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A13_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A13_t01.dart
index 1c0b872..dfa1239 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A13_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A13_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A13_t02.dart
index 393eb49..e651bcf 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A13_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A13_t02.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A13_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A13_t03.dart
index 26d9651..d675205 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A13_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A13_t03.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A14_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A14_t01.dart
index 2cd1548..174a1a9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A14_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A14_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A14_t02.dart
index 3d88a46..ce12963 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A14_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A14_t02.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A14_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A14_t03.dart
index a35928d..aae01a4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A14_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A14_t03.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A15_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A15_t01.dart
index 62daf76..c766ebd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A15_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A15_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A15_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A15_t02.dart
index dff2154..e689870 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A15_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A15_t02.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A15_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A15_t03.dart
index 65ebe34..a5c9989 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A15_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A15_t03.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A16_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A16_t01.dart
index 6bd9b8e..bba515a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A16_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A16_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A16_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A16_t02.dart
index 3aeb322..4287f02 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A16_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A16_t02.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A16_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A16_t03.dart
index 47bfb4e..721d650 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A16_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A16_t03.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A17_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A17_t01.dart
index ccaaf72..dbb8ff4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A17_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A17_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A17_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A17_t02.dart
index f01c86c..5323f9d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A17_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A17_t02.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A17_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A17_t03.dart
index 2c9aacb..2902959 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A17_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A17_t03.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A18_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A18_t01.dart
index 9244280..ded5547 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A18_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A18_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A18_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A18_t02.dart
index e26c59b..2506e25 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A18_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A18_t02.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A18_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A18_t03.dart
index 6fb661a..d688710 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A18_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_arguments_binding_A18_t03.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A01_t01.dart
index 10b75e4..6b47d4d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A01_t01.dart
@@ -25,11 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -80,14 +83,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A01_t02.dart
index 595bdce..f5b823d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A01_t02.dart
@@ -25,11 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -37,12 +40,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -67,12 +68,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A01_t03.dart
index 015125b..7809085 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A01_t03.dart
@@ -25,17 +25,20 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -49,6 +52,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -68,7 +74,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A02_t01.dart
index 3ce23b1..c7bec5f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A02_t01.dart
@@ -26,13 +26,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -83,14 +86,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A02_t02.dart
index 3f010b5..cddb2d5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A02_t02.dart
@@ -26,13 +26,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -40,12 +43,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -70,12 +71,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A02_t03.dart
index 7b27680..5acfb01 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A02_t03.dart
@@ -26,19 +26,22 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -52,6 +55,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -71,7 +77,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A03_t01.dart
index 9f51345..c2e5981 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A03_t01.dart
@@ -26,13 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
@@ -83,14 +87,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A03_t02.dart
index 1df95fa..fdf3074 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A03_t02.dart
@@ -26,13 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
@@ -40,12 +44,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -70,12 +72,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A03_t03.dart
index c571f65..e4b00a9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A03_t03.dart
@@ -26,19 +26,23 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -52,6 +56,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -71,7 +78,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A04_t01.dart
index cc8b3b3..76d1f95 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A04_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -82,14 +85,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A04_t02.dart
index 5b46e44..13c9917 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A04_t02.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -39,12 +42,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -69,12 +70,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A04_t03.dart
index b177617..20f33b9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A04_t03.dart
@@ -25,19 +25,22 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -51,6 +54,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -70,7 +76,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A05_t01.dart
index c9fd55f..bd86a71 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A05_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -82,14 +85,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A05_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A05_t02.dart
index 1701214..9881635 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A05_t02.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -39,12 +42,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -69,12 +70,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A05_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A05_t03.dart
index c0402b1..1b81537 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A05_t03.dart
@@ -25,19 +25,22 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -51,6 +54,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -70,7 +76,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A06_t01.dart
index 55a6615..1e23f82 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A06_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -82,14 +85,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A06_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A06_t02.dart
index 92502fd..9b23933 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A06_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A06_t02.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -39,12 +42,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -69,12 +70,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A06_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A06_t03.dart
index 20299de..6b100aa 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A06_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A06_t03.dart
@@ -25,19 +25,22 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -51,6 +54,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -70,7 +76,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A07_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A07_t01.dart
index 0494200..aa3d5f0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A07_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -82,14 +85,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A07_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A07_t02.dart
index 128df87..1f0c0c5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A07_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A07_t02.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -39,12 +42,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -69,12 +70,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A07_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A07_t03.dart
index c40f4a4..e0fdb40 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A07_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A07_t03.dart
@@ -25,19 +25,22 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -51,6 +54,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -70,7 +76,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A08_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A08_t01.dart
index dc4b4e8..bc9265e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A08_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -82,14 +85,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A08_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A08_t02.dart
index 174a95e..6893978 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A08_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A08_t02.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -39,12 +42,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -69,12 +70,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A08_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A08_t03.dart
index 8b34379..b080023 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A08_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A08_t03.dart
@@ -25,19 +25,22 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -51,6 +54,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -70,7 +76,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A09_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A09_t01.dart
index 8da7683..c280ad6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A09_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A09_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -82,14 +85,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A09_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A09_t02.dart
index 30e2e96..d2da2a7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A09_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A09_t02.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -39,12 +42,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -69,12 +70,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A09_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A09_t03.dart
index ad14212..52a4152 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A09_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A09_t03.dart
@@ -25,19 +25,22 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -51,6 +54,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -70,7 +76,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A10_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A10_t01.dart
index b5563f4..ab5bcfc 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A10_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A10_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -83,14 +86,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A10_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A10_t02.dart
index 36ee249..46013d6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A10_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A10_t02.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -40,12 +43,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -70,12 +71,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A10_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A10_t03.dart
index d0b576f..611b2f8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A10_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A10_t03.dart
@@ -25,20 +25,23 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -52,6 +55,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -71,7 +77,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A11_t01.dart
index 9464e04..e2b919b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A11_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -84,14 +87,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A11_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A11_t02.dart
index 51f0051..9ab50dd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A11_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A11_t02.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -41,12 +44,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -71,12 +72,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A11_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A11_t03.dart
index 97ec2b2..0f8f093 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A11_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A11_t03.dart
@@ -26,20 +26,23 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -53,6 +56,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -72,7 +78,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A12_t01.dart
index 7befc27..4e7812d7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A12_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -84,14 +87,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A12_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A12_t02.dart
index 0275736..87cc238 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A12_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A12_t02.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -41,12 +44,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -71,12 +72,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A12_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A12_t03.dart
index 3de9b30..160acae 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A12_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A12_t03.dart
@@ -26,20 +26,23 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -53,6 +56,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -72,7 +78,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A13_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A13_t01.dart
index 96dc2b9..fdf84f5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A13_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -83,14 +86,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A13_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A13_t02.dart
index 6679cea..26fec1f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A13_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A13_t02.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -40,12 +43,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -70,12 +71,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A13_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A13_t03.dart
index ce6eb3a..18b514a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A13_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A13_t03.dart
@@ -25,20 +25,23 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -52,6 +55,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -71,7 +77,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A14_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A14_t01.dart
index eef2c4c..c9724c2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A14_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -83,14 +86,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A14_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A14_t02.dart
index 378e656..9028b6f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A14_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A14_t02.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -40,12 +43,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -70,12 +71,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A14_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A14_t03.dart
index a4378bc..8f87de6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A14_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A14_t03.dart
@@ -25,20 +25,23 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -52,6 +55,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -71,7 +77,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A15_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A15_t01.dart
index c250856..ca05005 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A15_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A15_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -83,14 +86,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A15_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A15_t02.dart
index f464197..fbb047f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A15_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A15_t02.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -40,12 +43,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -70,12 +71,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A15_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A15_t03.dart
index 258d015..60fe6e3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A15_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A15_t03.dart
@@ -25,20 +25,23 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -52,6 +55,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -71,7 +77,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A16_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A16_t01.dart
index cfa3508..095d21f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A16_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A16_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -84,14 +87,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A16_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A16_t02.dart
index ef075dd..d5b446f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A16_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A16_t02.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -41,12 +44,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -71,12 +72,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A16_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A16_t03.dart
index ee9b466..6bdee3d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A16_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A16_t03.dart
@@ -26,20 +26,23 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -53,6 +56,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -72,7 +78,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A17_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A17_t01.dart
index bceb002..f65b7b1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A17_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A17_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -83,14 +86,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A17_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A17_t02.dart
index 0c72756..7106f8e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A17_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A17_t02.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -40,12 +43,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -70,12 +71,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A17_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A17_t03.dart
index a77e621..4b52f44 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A17_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A17_t03.dart
@@ -25,20 +25,23 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -52,6 +55,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -71,7 +77,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A18_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A18_t01.dart
index c038c5e..5ceed44 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A18_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A18_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -83,14 +86,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A18_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A18_t02.dart
index 0a06ee8..1f2a99f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A18_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A18_t02.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -40,12 +43,10 @@
 class ClassMemberSuper1_t02 {
   Function m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -70,12 +71,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A18_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A18_t03.dart
index 4f783a2..965bc79 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A18_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_class_member_A18_t03.dart
@@ -25,20 +25,23 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -52,6 +55,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -71,7 +77,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>();
+  ClassMember2_t03<Function> c2 = new ClassMember2_t03<Function>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A01_t01.dart
index bae9ddc..bbfe8f7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A01_t01.dart
@@ -25,11 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A02_t01.dart
index 25a9fe6..ba92e8b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A02_t01.dart
@@ -26,13 +26,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A03_t01.dart
index 46cd39d..9ed81f3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A03_t01.dart
@@ -26,13 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A04_t01.dart
index 3159ccd..1299f63 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A04_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A05_t01.dart
index cd85bb0..0925971 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A05_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A06_t01.dart
index d93da98..925d0d2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A06_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A07_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A07_t01.dart
index f200319..1d6ca75 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A07_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A08_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A08_t01.dart
index 9b439ae..6605a46 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A08_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A09_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A09_t01.dart
index cd1b37f..69b0d9f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A09_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A09_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A10_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A10_t01.dart
index 787a3c9..055d8aa 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A10_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A10_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A11_t01.dart
index 09f08de..165ed2c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A11_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A12_t01.dart
index f5a6820..0630c5d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A12_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A13_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A13_t01.dart
index de7c0b4..47960dc 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A13_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A14_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A14_t01.dart
index b358b7e..6d83130 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A14_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A15_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A15_t01.dart
index e880dc8..741b722 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A15_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A15_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A16_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A16_t01.dart
index e19cc6f..8743418 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A16_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A16_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A17_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A17_t01.dart
index fbed6f0..3c57ff3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A17_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A17_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A18_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A18_t01.dart
index 253456c..48c3314 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A18_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_global_variable_A18_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A01_t01.dart
index 0b43d39..0282ff6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A01_t01.dart
@@ -25,11 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A02_t01.dart
index 85e7f54..2def92d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A02_t01.dart
@@ -26,13 +26,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A03_t01.dart
index 6b340b3..06bb56f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A03_t01.dart
@@ -26,13 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A04_t01.dart
index 1bb5185..90d87a3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A04_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A05_t01.dart
index 2b12533..67df864 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A05_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A06_t01.dart
index 27b7843..3dc52f1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A06_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A07_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A07_t01.dart
index 3af3a4d..45fa3e0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A07_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A08_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A08_t01.dart
index ee3967d..3f21e12 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A08_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A09_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A09_t01.dart
index 4dddd3f..f5e4291 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A09_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A09_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A10_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A10_t01.dart
index 9efff73..b79bbde 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A10_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A10_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A11_t01.dart
index c3c017e..4f2d901 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A11_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A12_t01.dart
index cb76039..fa1f708 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A12_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A13_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A13_t01.dart
index 7b04f56..8473173 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A13_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A14_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A14_t01.dart
index 3b951ef..5732a65 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A14_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A15_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A15_t01.dart
index 3fe5cdc..d48937e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A15_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A15_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A16_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A16_t01.dart
index c12b097..ee4b24b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A16_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A16_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A17_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A17_t01.dart
index 0e7d08c..bf12b18 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A17_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A17_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A18_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A18_t01.dart
index 2f1645f..5eb60aa 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A18_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_local_variable_A18_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A01_t01.dart
index a119656..5d9922e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A01_t01.dart
@@ -25,11 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A02_t01.dart
index ebea8fc..c4d3495 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A02_t01.dart
@@ -26,13 +26,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A03_t01.dart
index a326364..09d44e6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A03_t01.dart
@@ -26,13 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A04_t01.dart
index be260f9..215f35c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A04_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A05_t01.dart
index ffbd499..5e1026d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A05_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A06_t01.dart
index 6588b99..4e37f29 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A06_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A07_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A07_t01.dart
index 1548a4f..13f0342 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A07_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A08_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A08_t01.dart
index bd225da..c0fdf17 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A08_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A09_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A09_t01.dart
index 6deffbb..8f4ae9d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A09_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A09_t01.dart
@@ -25,13 +25,16 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A10_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A10_t01.dart
index 3458563..9320589 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A10_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A10_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A11_t01.dart
index 90e9d9b..6cc1f76 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A11_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A12_t01.dart
index b9b380b..26d72f6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A12_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A13_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A13_t01.dart
index f0e9525..8ba3709 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A13_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A14_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A14_t01.dart
index 43434fc..d671ef4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A14_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A15_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A15_t01.dart
index a4776d6..a0fc336 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A15_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A15_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A16_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A16_t01.dart
index 2cd20ac..cb5ce56 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A16_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A16_t01.dart
@@ -26,14 +26,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A17_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A17_t01.dart
index 3da5e8b..af32566 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A17_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A17_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A18_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A18_t01.dart
index a20299a..5c9b62b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A18_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/function_type_function_return_value_A18_t01.dart
@@ -25,14 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A01_t01.dart
index c201045..1e8a4b0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A01_t01.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,11 +36,15 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 namedArgumentsFunc1(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A01_t02.dart
index 90908f6..1cdf974 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A01_t02.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,11 +36,15 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A01_t03.dart
index e181e4d..1aefb42 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A01_t03.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,11 +36,15 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A02_t01.dart
index 28d4409..25f2ffb 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A02_t01.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,11 +36,15 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 namedArgumentsFunc1(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A02_t02.dart
index f0fd337..d860754 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A02_t02.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,11 +36,15 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A02_t03.dart
index 9345398..ffc8bd1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_arguments_binding_A02_t03.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,11 +36,15 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A01_t01.dart
index 2544d00..f26811e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A01_t01.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,11 +36,15 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
@@ -90,14 +94,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A01_t02.dart
index 9cd100b..cf5f3ef 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A01_t02.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,23 +36,25 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ClassMemberSuper1_t02 {
   C0<U0, U1, U2> m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -77,12 +79,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A01_t03.dart
index 5e54850..dc6724d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A01_t03.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,16 +36,20 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  C0<U0, U1, U2> m;
+  C0<U0, U1, U2> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -59,6 +63,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -78,7 +85,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<C0<U0, U1, U2>> c2 = new ClassMember2_t03<C0<U0, U1, U2>>();
+  ClassMember2_t03<C0<U0, U1, U2>> c2 = new ClassMember2_t03<C0<U0, U1, U2>>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A02_t01.dart
index 9dbd757..8d9c1b7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A02_t01.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,11 +36,15 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
@@ -90,14 +94,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A02_t02.dart
index 07be0c8..38d0417 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A02_t02.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,23 +36,25 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ClassMemberSuper1_t02 {
   C0<U0, U1, U2> m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -77,12 +79,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A02_t03.dart
index 9ae469c..a93be5d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_class_member_A02_t03.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,16 +36,20 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  C0<U0, U1, U2> m;
+  C0<U0, U1, U2> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -59,6 +63,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -78,7 +85,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<C0<U0, U1, U2>> c2 = new ClassMember2_t03<C0<U0, U1, U2>>();
+  ClassMember2_t03<C0<U0, U1, U2>> c2 = new ClassMember2_t03<C0<U0, U1, U2>>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_arguments_binding_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_arguments_binding_fail_A01_t01.dart
index d804489..d42634e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_arguments_binding_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_arguments_binding_fail_A01_t01.dart
@@ -28,7 +28,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -38,11 +38,15 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_arguments_binding_fail_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_arguments_binding_fail_A01_t02.dart
index c29b9f3..3fb8157 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_arguments_binding_fail_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_arguments_binding_fail_A01_t02.dart
@@ -28,7 +28,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -38,11 +38,15 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_arguments_binding_fail_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_arguments_binding_fail_A01_t03.dart
index e382152..28fce82 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_arguments_binding_fail_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_arguments_binding_fail_A01_t03.dart
@@ -28,7 +28,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -38,18 +38,22 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(C0<U0, U1, U2> val) {}
-  void superTestPositioned(C0<U0, U1, U2> val, [C0<U0, U1, U2> val2]) {}
-  void superTestNamed(C0<U0, U1, U2> val, {C0<U0, U1, U2> val2}) {}
+  void superTestPositioned(C0<U0, U1, U2> val, [C0<U0, U1, U2> val2 = t1Default]) {}
+  void superTestNamed(C0<U0, U1, U2> val, {C0<U0, U1, U2> val2 = t1Default}) {}
   C0<U0, U1, U2> get superGetter => forgetType(t0Instance);
   void set superSetter(C0<U0, U1, U2> val) {}
 }
@@ -145,8 +149,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_class_member_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_class_member_fail_A01_t01.dart
index 554d32b..88dce24 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_class_member_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_class_member_fail_A01_t01.dart
@@ -28,7 +28,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -38,16 +38,20 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ClassMemberTestStatic {
-  static C0<U0, U1, U2> s;
+  static C0<U0, U1, U2> s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -65,7 +69,7 @@
 }
 
 class ClassMemberTestPublic {
-  C0<U0, U1, U2> m;
+  C0<U0, U1, U2> m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -87,7 +91,7 @@
 }
 
 class ClassMemberTestPrivate {
-  C0<U0, U1, U2> _m;
+  C0<U0, U1, U2> _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -114,14 +118,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -136,14 +137,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -179,30 +177,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -228,30 +226,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<C0<U0, U1, U2>>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<C0<U0, U1, U2>>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<C0<U0, U1, U2>>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<C0<U0, U1, U2>>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<C0<U0, U1, U2>>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<C0<U0, U1, U2>>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<C0<U0, U1, U2>>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<C0<U0, U1, U2>>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<C0<U0, U1, U2>>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<C0<U0, U1, U2>>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<C0<U0, U1, U2>>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<C0<U0, U1, U2>>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_class_member_fail_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_class_member_fail_A01_t02.dart
index b4dec45..17c2e31 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_class_member_fail_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_class_member_fail_A01_t02.dart
@@ -28,7 +28,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -38,16 +38,20 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  C0<U0, U1, U2> m;
+  C0<U0, U1, U2> m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -84,12 +88,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -105,8 +107,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -121,16 +121,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -140,16 +140,16 @@
   Expect.throws(() {new ClassMember2_t02<C0<U0, U1, U2>>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<C0<U0, U1, U2>>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<C0<U0, U1, U2>>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<C0<U0, U1, U2>>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<C0<U0, U1, U2>>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<C0<U0, U1, U2>>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<C0<U0, U1, U2>>.valid().test1();
+    new ClassMember2_t02<C0<U0, U1, U2>>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<C0<U0, U1, U2>>.valid().test2();
+    new ClassMember2_t02<C0<U0, U1, U2>>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_class_member_fail_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_class_member_fail_A01_t03.dart
index 3c8fdca..70ba6f9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_class_member_fail_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_class_member_fail_A01_t03.dart
@@ -28,7 +28,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -38,16 +38,20 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  C0<U0, U1, U2> m;
+  C0<U0, U1, U2> m = t1Default;
 
   void set superSetter(C0<U0, U1, U2> val) {}
 }
@@ -66,11 +70,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -98,16 +106,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<C0<U0, U1, U2>>().m = forgetType(t0Instance);
+    new ClassMember2_t03<C0<U0, U1, U2>>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<C0<U0, U1, U2>>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<C0<U0, U1, U2>>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<C0<U0, U1, U2>>().test1();
+    new ClassMember2_t03<C0<U0, U1, U2>>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<C0<U0, U1, U2>>().test2();
+    new ClassMember2_t03<C0<U0, U1, U2>>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_global_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_global_variable_fail_A01_t01.dart
index 1bfbaf5..20e7bfc 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_global_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_global_variable_fail_A01_t01.dart
@@ -28,7 +28,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -38,11 +38,15 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_local_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_local_variable_fail_A01_t01.dart
index 79c0a3e..dba3106 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_local_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_local_variable_fail_A01_t01.dart
@@ -28,7 +28,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -38,43 +38,42 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    C0<U0, U1, U2> t1 = null;
-    t1 = forgetType(t0Instance);
+    C0<U0, U1, U2> t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    C0<U0, U1, U2> t1 = null;
-    t1 = forgetType(t0Instance);
+    C0<U0, U1, U2> t1 = forgetType(t0Instance);
   }
 
   test() {
-    C0<U0, U1, U2> t1 = null;
-    t1 = forgetType(t0Instance);
+    C0<U0, U1, U2> t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    C0<U0, U1, U2> t1 = null;
-    t1 = forgetType(t0Instance);
+    C0<U0, U1, U2> t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    C0<U0, U1, U2> t1 = null;
-    t1 = forgetType(t0Instance);
+    C0<U0, U1, U2> t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_return_value_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_return_value_fail_A01_t01.dart
index 37e87d1..11abaaf 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_return_value_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_fail_return_value_fail_A01_t01.dart
@@ -28,7 +28,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -38,11 +38,15 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_global_variable_A01_t01.dart
index 7df0f1e..bacdeac 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_global_variable_A01_t01.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,11 +36,15 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_global_variable_A02_t01.dart
index d3d8abb..b3c8aed 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_global_variable_A02_t01.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,11 +36,15 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_local_variable_A01_t01.dart
index f1144ea..064d961 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_local_variable_A01_t01.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,11 +36,15 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_local_variable_A02_t01.dart
index 725fcce..ccb3946 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_local_variable_A02_t01.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,11 +36,15 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_return_value_A01_t01.dart
index 5b65a1c..aed4952 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_return_value_A01_t01.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,11 +36,15 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_return_value_A02_t01.dart
index 54583dd..c33c639 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/interface_compositionality_return_value_A02_t01.dart
@@ -27,7 +27,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -36,11 +36,15 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A01_t01.dart
index a86a619..0cff109 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A01_t01.dart
@@ -28,15 +28,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 namedArgumentsFunc1(FutureOr<C> t1, {FutureOr<C> t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A01_t02.dart
index b4c5ff8..40cd8b9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A01_t02.dart
@@ -28,15 +28,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A01_t03.dart
index b747aac..77db48d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A01_t03.dart
@@ -28,15 +28,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A02_t01.dart
index c2feb61..4ac4829 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A02_t01.dart
@@ -28,15 +28,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 namedArgumentsFunc1(FutureOr<C> t1, {FutureOr<C> t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A02_t02.dart
index b289ace..a0f6c0a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A02_t02.dart
@@ -28,15 +28,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A02_t03.dart
index 67659ab..8a217ae 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A02_t03.dart
@@ -28,15 +28,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A03_t01.dart
index 99df5a8..da7a84d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A03_t01.dart
@@ -28,17 +28,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 namedArgumentsFunc1(FutureOr<C<A>> t1, {FutureOr<C<A>> t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A03_t02.dart
index ed1bb39..24cbfa7a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A03_t02.dart
@@ -28,17 +28,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A03_t03.dart
index a2ffce5..f7e3273 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A03_t03.dart
@@ -28,17 +28,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A04_t01.dart
index 5a1eb64..978c854 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A04_t01.dart
@@ -29,17 +29,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 namedArgumentsFunc1(FutureOr<C<A>> t1, {FutureOr<C<A>> t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A04_t02.dart
index c0bc954..fad0ddd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A04_t02.dart
@@ -29,17 +29,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A04_t03.dart
index 018edb3..f27d43c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_arguments_binding_A04_t03.dart
@@ -29,17 +29,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A01_t01.dart
index 6dba0e8..b2df0ed 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A01_t01.dart
@@ -28,15 +28,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
@@ -86,14 +90,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A01_t02.dart
index d68ce49..0e38442 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A01_t02.dart
@@ -28,27 +28,29 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
 class ClassMemberSuper1_t02 {
   FutureOr<C> m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -73,12 +75,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A01_t03.dart
index 1d81bac..95af27b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A01_t03.dart
@@ -28,20 +28,24 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<C> m;
+  FutureOr<C> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -55,6 +59,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -74,7 +81,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<FutureOr<C>> c2 = new ClassMember2_t03<FutureOr<C>>();
+  ClassMember2_t03<FutureOr<C>> c2 = new ClassMember2_t03<FutureOr<C>>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A02_t01.dart
index 97b004f..f9aa27d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A02_t01.dart
@@ -28,15 +28,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
@@ -86,14 +90,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A02_t02.dart
index 60922d9..a42e565 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A02_t02.dart
@@ -28,27 +28,29 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
 class ClassMemberSuper1_t02 {
   FutureOr<C> m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -73,12 +75,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A02_t03.dart
index e5bbffe..64d96c8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A02_t03.dart
@@ -28,20 +28,24 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<C> m;
+  FutureOr<C> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -55,6 +59,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -74,7 +81,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<FutureOr<C>> c2 = new ClassMember2_t03<FutureOr<C>>();
+  ClassMember2_t03<FutureOr<C>> c2 = new ClassMember2_t03<FutureOr<C>>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A03_t01.dart
index cc14404..0b900ea 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A03_t01.dart
@@ -28,17 +28,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
@@ -88,14 +92,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A03_t02.dart
index ef80ab8..973e89b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A03_t02.dart
@@ -28,29 +28,31 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
 class ClassMemberSuper1_t02 {
   FutureOr<C<A>> m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -75,12 +77,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A03_t03.dart
index 7ffd8d2..c7df404 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A03_t03.dart
@@ -28,22 +28,26 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<C<A>> m;
+  FutureOr<C<A>> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -57,6 +61,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -76,7 +83,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<FutureOr<C<A>>> c2 = new ClassMember2_t03<FutureOr<C<A>>>();
+  ClassMember2_t03<FutureOr<C<A>>> c2 = new ClassMember2_t03<FutureOr<C<A>>>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A04_t01.dart
index 269b8b4..3a09036 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A04_t01.dart
@@ -29,17 +29,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
@@ -89,14 +93,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A04_t02.dart
index dd3ed1f..9cd4a52 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A04_t02.dart
@@ -29,29 +29,31 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
 class ClassMemberSuper1_t02 {
   FutureOr<C<A>> m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -76,12 +78,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A04_t03.dart
index 5b7425e..d03ea06 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_class_member_A04_t03.dart
@@ -29,22 +29,26 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<C<A>> m;
+  FutureOr<C<A>> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -58,6 +62,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -77,7 +84,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<FutureOr<C<A>>> c2 = new ClassMember2_t03<FutureOr<C<A>>>();
+  ClassMember2_t03<FutureOr<C<A>>> c2 = new ClassMember2_t03<FutureOr<C<A>>>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A01_t01.dart
deleted file mode 100644
index 3c55a64..0000000
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A01_t01.dart
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left FutureOr: T0 is FutureOr<S0>
- *   and Future<S0> <: T1
- *   and S0 <: T1
- * @description Check that if a type T0 is FutureOr<S0> and Future<S0> is a
- * subtype of T1 but S0 is not a subtype of a type T1, then a type T0 is not a
- * subtype of a type T1.
- * @author ngl@unipro.ru
- */
-/**
- * @description Check that if type T0 not a subtype of a type T1, then it cannot
- * be used as an argument of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_FutureOr_fail_A01.dart and 
- * arguments_binding_fail_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-import '../../utils/common.dart';
-import '../../../../Utils/expect.dart';
-
-import "dart:async";
-
-class S0 {}
-
-FutureOr<S0> t0Instance = new S0();
-Future<S0> t1Instance = new Future<S0>.value(new S0()); // S0 is not a subtype of T1 (T1 is Future<S0>)
-
-
-
-
-namedArgumentsFunc1(Future<S0> t1, {Future<S0> t2 = t1Default}) {}
-positionalArgumentsFunc1(Future<S0> t1, [Future<S0> t2 = t1Default]) {}
-
-namedArgumentsFunc2<X>(X t1, {required X t2}) {}
-
-class ArgumentsBindingClass {
-  ArgumentsBindingClass(Future<S0> t1) {}
-
-  ArgumentsBindingClass.named(Future<S0> t1, {Future<S0> t2 = t1Default}) {}
-
-  factory ArgumentsBindingClass.fNamed(Future<S0> t1, {Future<S0> t2 = t1Default}) {
-    return new ArgumentsBindingClass.named(t1, t2: t2);
-  }
-  factory ArgumentsBindingClass.fPositional(Future<S0> t1, [Future<S0> t2 = t1Default]) {
-    return new ArgumentsBindingClass.named(t1, t2: t2);
-  }
-
-  static namedArgumentsStaticMethod(Future<S0> t1, {Future<S0> t2 = t1Default}) {}
-  static positionalArgumentsStaticMethod(Future<S0> t1, [Future<S0> t2 = t1Default]) {}
-
-  namedArgumentsMethod(Future<S0> t1, {Future<S0> t2 = t1Default}) {}
-  positionalArgumentsMethod(Future<S0> t1, [Future<S0> t2 = t1Default]) {}
-
-  set testSetter(Future<S0> val) {}
-}
-
-class ArgumentsBindingClassGen<X> {
-  ArgumentsBindingClassGen(X t1) {}
-
-  ArgumentsBindingClassGen.named(X t1, {required X t2}) {}
-
-  factory ArgumentsBindingClassGen.fNamed(X t1, {required X t2}) {
-    return new ArgumentsBindingClassGen.named(t1, t2: t2);
-  }
-
-  namedArgumentsMethod(X t1, {required X t2}) {}
-
-  set testSetter(X val) {}
-}
-
-class ArgumentsBindingClassSuper {
-  ArgumentsBindingClassSuper(Future<S0> t1) {}
-}
-
-class ArgumentsBindingDesc extends ArgumentsBindingClassSuper {
-  ArgumentsBindingDesc(FutureOr<S0> t0) : super (forgetType(t0)) {}
-}
-
-main() {
-  // Test functions
-  Expect.throws(() {
-    namedArgumentsFunc1(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    namedArgumentsFunc1(t1Instance, t2: forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    positionalArgumentsFunc1(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    positionalArgumentsFunc1(t1Instance, forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  // Test constructors
-  Expect.throws(() {
-    new ArgumentsBindingClass(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBindingClass.named(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBindingClass.named(t1Instance, t2: forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBindingClass.fNamed(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBindingClass.fNamed(t1Instance, t2: forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBindingClass.fPositional(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBindingClass.fPositional(t1Instance, forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  // Test instance methods and setters
-  Expect.throws(() {
-    new ArgumentsBindingClass(t1Instance).namedArgumentsMethod(
-        forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBindingClass(t1Instance).namedArgumentsMethod(t1Instance,
-        t2: forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBindingClass(t1Instance).positionalArgumentsMethod(
-        forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBindingClass(t1Instance).positionalArgumentsMethod(t1Instance,
-        forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBindingClass(t1Instance).testSetter = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-
-  // Test static methods
-  Expect.throws(() {
-    ArgumentsBindingClass.namedArgumentsStaticMethod(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    ArgumentsBindingClass.namedArgumentsStaticMethod(t1Instance,
-        t2: forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    ArgumentsBindingClass.positionalArgumentsStaticMethod(
-        forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    ArgumentsBindingClass.positionalArgumentsStaticMethod(t1Instance,
-        forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  // Test type parameters
-
-  //# <-- NotGenericFunctionType
-  // Test generic functions
-  Expect.throws(() {
-    namedArgumentsFunc2<Future<S0>>(t1Instance, t2: forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  // Test constructors
-  Expect.throws(() {
-    new ArgumentsBindingClassGen<Future<S0>>(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBindingClassGen<Future<S0>>.named(t1Instance, t2: forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBindingClassGen<Future<S0>>.fNamed(t1Instance, t2: forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-
-  // Test instance methods and setters
-  Expect.throws(() {
-    new ArgumentsBindingClassGen<Future<S0>>(t1Instance).namedArgumentsMethod(t1Instance,
-    t2: forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBindingClassGen<Future<S0>>(t1Instance).testSetter = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-  //# -->
-
-  // Test superclass constructor call
-  Expect.throws(() {
-    new ArgumentsBindingDesc(t0Instance);
-  }, (e) => e is TypeError);
-}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A01_t02.dart
deleted file mode 100644
index 3169739..0000000
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A01_t02.dart
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left FutureOr: T0 is FutureOr<S0>
- *   and Future<S0> <: T1
- *   and S0 <: T1
- * @description Check that if a type T0 is FutureOr<S0> and Future<S0> is a
- * subtype of T1 but S0 is not a subtype of a type T1, then a type T0 is not a
- * subtype of a type T1.
- * @author ngl@unipro.ru
- */
-/**
- * @description Check that if type T0 not a subtype of a type T1, then it cannot
- * be used as an argument of type T1. Test superclass members
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_FutureOr_fail_A01.dart and 
- * arguments_binding_fail_x02.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-import '../../utils/common.dart';
-import '../../../../Utils/expect.dart';
-
-import "dart:async";
-
-class S0 {}
-
-FutureOr<S0> t0Instance = new S0();
-Future<S0> t1Instance = new Future<S0>.value(new S0()); // S0 is not a subtype of T1 (T1 is Future<S0>)
-
-
-
-
-class ArgumentsBindingSuper1_t02 {
-  Future<S0> m;
-
-  ArgumentsBindingSuper1_t02(Future<S0> value): m = value {}
-  ArgumentsBindingSuper1_t02.named(Future<S0> value, {Future<S0> val2 = t1Default}): m = value {}
-  ArgumentsBindingSuper1_t02.positional(Future<S0> value, [Future<S0> val2 = t1Default]): m = value {}
-  ArgumentsBindingSuper1_t02.short(this.m);
-
-  void superTest(Future<S0> val) {}
-  void superTestPositioned(Future<S0> val, [Future<S0> val2 = t1Default]) {}
-  void superTestNamed(Future<S0> val, {Future<S0> val2 = t1Default}) {}
-  Future<S0> get superGetter => forgetType(t0Instance);
-  void set superSetter(Future<S0> val) {}
-}
-
-class ArgumentsBinding1_t02 extends ArgumentsBindingSuper1_t02 {
-  ArgumentsBinding1_t02(dynamic t1) : super(t1) {}
-  ArgumentsBinding1_t02.c1(dynamic t1) : super.named(t1) {}
-  ArgumentsBinding1_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding1_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding1_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
-  ArgumentsBinding1_t02.c5(dynamic t1) : super.short(t1) {}
-
-  test() {
-    Expect.throws(() {
-      superTest(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTest(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTest(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superTestPositioned(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTestPositioned(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTestPositioned(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superTestPositioned(forgetType(t1Instance), forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTestPositioned(forgetType(t1Instance), forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTestPositioned(forgetType(t1Instance), forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superTestNamed(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTestNamed(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTestNamed(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superTestNamed(forgetType(t1Instance), val2: forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTestNamed(forgetType(t1Instance), val2: forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTestNamed(forgetType(t1Instance), val2: forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superSetter = forgetType(t0Instance);
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superSetter = forgetType(t0Instance);
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superSetter = forgetType(t0Instance);
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superGetter;
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superGetter;
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superGetter;
-    }, (e) => e is TypeError);
-  }
-}
-
-class ArgumentsBindingSuper2_t02<X> {
-  X m;
-
-  ArgumentsBindingSuper2_t02(X value): m = value {}
-  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
-  ArgumentsBindingSuper2_t02.short(this.m);
-
-  void superTest(X val) {}
-  void superTestNamed(X val, {required X val2}) {}
-  X get superGetter => forgetType(t0Instance);
-  void set superSetter(X val) {}
-}
-
-class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
-  ArgumentsBinding2_t02(dynamic t1) : super(t1) {}
-  ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
-
-  test() {
-    Expect.throws(() {
-      superTest(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTest(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTest(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superTestNamed(forgetType(t1Instance), val2: forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTestNamed(forgetType(t1Instance), val2: forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superSetter = forgetType(t0Instance);
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superSetter = forgetType(t0Instance);
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superSetter = forgetType(t0Instance);
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superGetter;
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superGetter;
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superGetter;
-    }, (e) => e is TypeError);
-  }
-}
-
-main() {
-  // test constructors
-  Expect.throws(() {
-    new ArgumentsBinding1_t02(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t02.c1(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t02.c2(t1Instance, forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t02.c3(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t02.c4(t1Instance, forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t02.c5(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  // test class members
-  Expect.throws(() {
-    new ArgumentsBinding1_t02(t1Instance).superTest(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t02(t1Instance).superTestPositioned(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t02(t1Instance).superTestPositioned(t1Instance, forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t02(t1Instance).superTestNamed(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t02(t1Instance).superTestNamed(t1Instance, val2: forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t02(t1Instance).superSetter = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t02(t1Instance).superGetter;
-  }, (e) => e is TypeError);
-
-  new ArgumentsBinding1_t02(t1Instance).test();
-
-  // Test type parameters
-
-  //# <-- NotGenericFunctionType
-  // test generic class constructors
-  Expect.throws(() {
-    new ArgumentsBinding2_t02<Future<S0>>(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding2_t02<Future<S0>>.c2(t1Instance, forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding2_t02<Future<S0>>.c5(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  // test generic class members
-  Expect.throws(() {
-    new ArgumentsBinding2_t02<Future<S0>>(t1Instance).superTest(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding2_t02<Future<S0>>(t1Instance).superTestNamed(forgetType(t1Instance), val2: forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding2_t02<Future<S0>>(t1Instance).superSetter = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding2_t02<Future<S0>>(t1Instance).superGetter;
-  }, (e) => e is TypeError);
-
-  new ArgumentsBinding2_t02<Future<S0>>(t1Instance).test();
-  //# -->
-}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A01_t03.dart
deleted file mode 100644
index 2dd4e32..0000000
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A01_t03.dart
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left FutureOr: T0 is FutureOr<S0>
- *   and Future<S0> <: T1
- *   and S0 <: T1
- * @description Check that if a type T0 is FutureOr<S0> and Future<S0> is a
- * subtype of T1 but S0 is not a subtype of a type T1, then a type T0 is not a
- * subtype of a type T1.
- * @author ngl@unipro.ru
- */
-/**
- * @description Check that if type T0 not a subtype of a type T1, then it cannot
- * be used as an argument of type T1. Test mixin members
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_FutureOr_fail_A01.dart and 
- * arguments_binding_fail_x03.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-import '../../utils/common.dart';
-import '../../../../Utils/expect.dart';
-
-import "dart:async";
-
-class S0 {}
-
-FutureOr<S0> t0Instance = new S0();
-Future<S0> t1Instance = new Future<S0>.value(new S0()); // S0 is not a subtype of T1 (T1 is Future<S0>)
-
-
-
-
-class ArgumentsBindingSuper1_t03 {
-  void superTest(Future<S0> val) {}
-  void superTestPositioned(Future<S0> val, [Future<S0> val2]) {}
-  void superTestNamed(Future<S0> val, {Future<S0> val2}) {}
-  Future<S0> get superGetter => forgetType(t0Instance);
-  void set superSetter(Future<S0> val) {}
-}
-
-class ArgumentsBinding1_t03 extends Object with ArgumentsBindingSuper1_t03 {
-
-  test() {
-    Expect.throws(() {
-      superTest(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTest(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTest(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superTestPositioned(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTestPositioned(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTestPositioned(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superTestPositioned(forgetType(t1Instance), forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTestPositioned(forgetType(t1Instance), forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTestPositioned(forgetType(t1Instance), forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superTestNamed(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTestNamed(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTestNamed(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superTestNamed(forgetType(t1Instance), val2: forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTestNamed(forgetType(t1Instance), val2: forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTestNamed(forgetType(t1Instance), val2: forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superSetter = forgetType(t0Instance);
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superSetter = forgetType(t0Instance);
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superSetter = forgetType(t0Instance);
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superGetter;
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superGetter;
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superGetter;
-    }, (e) => e is TypeError);
-  }
-}
-
-class ArgumentsBindingSuper2_t03<X> {
-  void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => forgetType(t0Instance);
-  void set superSetter(X val) {}
-}
-
-class ArgumentsBinding2_t03<X> extends Object with ArgumentsBindingSuper2_t03<X> {
-
-  test() {
-    Expect.throws(() {
-      superTest(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTest(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTest(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superTestPositioned(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTestPositioned(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTestPositioned(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superTestPositioned(forgetType(t1Instance), forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTestPositioned(forgetType(t1Instance), forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTestPositioned(forgetType(t1Instance), forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superTestNamed(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTestNamed(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTestNamed(forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superTestNamed(forgetType(t1Instance), val2: forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superTestNamed(forgetType(t1Instance), val2: forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superTestNamed(forgetType(t1Instance), val2: forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superSetter = forgetType(t0Instance);
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superSetter = forgetType(t0Instance);
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superSetter = forgetType(t0Instance);
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      superGetter;
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      this.superGetter;
-    }, (e) => e is TypeError);
-
-    Expect.throws(() {
-      super.superGetter;
-    }, (e) => e is TypeError);
-  }
-}
-
-main() {
-  // test class members
-  Expect.throws(() {
-    new ArgumentsBinding1_t03().superTest(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t03().superTestPositioned(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t03().superTestPositioned(t1Instance, forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t03().superTestNamed(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t03().superTestNamed(t1Instance, val2: forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t03().superSetter = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding1_t03().superGetter;
-  }, (e) => e is TypeError);
-
-  new ArgumentsBinding1_t03().test();
-
-  // Test type parameters
-
-  //# <-- NotGenericFunctionType
-  // test generic class members
-  Expect.throws(() {
-    new ArgumentsBinding2_t03<Future<S0>>().superTest(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding2_t03<Future<S0>>().superTest(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding2_t03<Future<S0>>().superTestPositioned(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding2_t03<Future<S0>>().superTestPositioned(forgetType(t1Instance), forgetType(t0Instance));
-    }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding2_t03<Future<S0>>().superTestNamed(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding2_t03<Future<S0>>().superTestNamed(forgetType(t1Instance), val2: forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding2_t03<Future<S0>>().superSetter = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ArgumentsBinding2_t03<Future<S0>>().superGetter;
-  }, (e) => e is TypeError);
-
-  new ArgumentsBinding2_t03<Future<S0>>().test();
-  //# -->
-}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A02_t01.dart
index 50bd920..71265ef 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A02_t01.dart
@@ -29,15 +29,19 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A02_t02.dart
index 1eefac9..dfcc570 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A02_t02.dart
@@ -29,15 +29,19 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A02_t03.dart
index cff40a1..5fb3373 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A02_t03.dart
@@ -29,22 +29,26 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -140,8 +144,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A03_t01.dart
index c8e1e10..df78e65 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A03_t01.dart
@@ -29,10 +29,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,6 +47,8 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A03_t02.dart
index 3f8f4ed..7a7519c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A03_t02.dart
@@ -29,10 +29,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,6 +47,8 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A03_t03.dart
index 81f8d50..dc1b939 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_arguments_binding_fail_A03_t03.dart
@@ -29,10 +29,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,13 +47,15 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(Future<C1> val) {}
-  void superTestPositioned(Future<C1> val, [Future<C1> val2]) {}
-  void superTestNamed(Future<C1> val, {Future<C1> val2}) {}
+  void superTestPositioned(Future<C1> val, [Future<C1> val2 = t1Default]) {}
+  void superTestNamed(Future<C1> val, {Future<C1> val2 = t1Default}) {}
   Future<C1> get superGetter => forgetType(t0Instance);
   void set superSetter(Future<C1> val) {}
 }
@@ -147,8 +151,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A01_t01.dart
deleted file mode 100644
index e1903b8..0000000
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A01_t01.dart
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left FutureOr: T0 is FutureOr<S0>
- *   and Future<S0> <: T1
- *   and S0 <: T1
- * @description Check that if a type T0 is FutureOr<S0> and Future<S0> is a
- * subtype of T1 but S0 is not a subtype of a type T1, then a type T0 is not a
- * subtype of a type T1.
- * @author ngl@unipro.ru
- */
-/**
- * @description Check that if type T0 not a subtype of a type T1, then it cannot
- * be used as a class member of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_FutureOr_fail_A01.dart and 
- * class_member_fail_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-import '../../utils/common.dart';
-import '../../../../Utils/expect.dart';
-
-import "dart:async";
-
-class S0 {}
-
-FutureOr<S0> t0Instance = new S0();
-Future<S0> t1Instance = new Future<S0>.value(new S0()); // S0 is not a subtype of T1 (T1 is Future<S0>)
-
-
-
-
-class ClassMemberTestStatic {
-  static Future<S0> s;
-
-  ClassMemberTestStatic(dynamic val) {
-    s = val;
-  }
-
-  static staticTest() {
-    s = forgetType(t0Instance);
-  }
-
-  static set staticSetter(dynamic val) {
-    s = val;
-  }
-
-  static Future<S0> get staticGetter => forgetType(t0Instance);
-}
-
-class ClassMemberTestPublic {
-  Future<S0> m;
-
-  ClassMemberTestPublic(dynamic val) {
-    m = val;
-  }
-
-  ClassMemberTestPublic.short(this.m);
-
-  ClassMemberTestPublic.validConstructor() {}
-
-  test(dynamic val) {
-    m = val;
-  }
-
-  set setter(dynamic val) {
-    m = val;
-  }
-
-  Future<S0> get getter => forgetType(t0Instance);
-}
-
-class ClassMemberTestPrivate {
-  Future<S0> _m;
-
-  ClassMemberTestPrivate(dynamic val) {
-    _m = val;
-  }
-
-  ClassMemberTestPrivate.short(this._m);
-
-  ClassMemberTestPrivate.validConstructor() {}
-
-  test(dynamic val) {
-    _m = val;
-  }
-
-  set setter(dynamic val) {
-    _m = val;
-  }
-}
-
-class ClassMemberTestInitFail {
-  static Future<S0> s = forgetType(t0Instance);
-  Future<S0> m = forgetType(t0Instance);
-}
-
-class ClassMemberTestGenericPublic<X> {
-  X m;
-
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
-  }
-
-  ClassMemberTestGenericPublic.short(this.m);
-
-  ClassMemberTestGenericPublic.validConstructor() {}
-
-  test(dynamic val) {
-    m = val;
-  }
-
-  set setter(dynamic val) {
-    m = val;
-  }
-
-  X get getter => forgetType(t0Instance);
-}
-
-class ClassMemberTestGenericPrivate<X> {
-  X _m;
-
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
-  }
-
-  ClassMemberTestGenericPrivate.short(this._m);
-
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
-  test(dynamic val) {
-    _m = val;
-  }
-
-  set setter(dynamic val) {
-    _m = val;
-  }
-}
-
-
-main() {
-
-  // Test initialization
-  Expect.throws(() {ClassMemberTestInitFail.s;}, (e) => e is TypeError);
-  Expect.throws(() {new ClassMemberTestInitFail();}, (e) => e is TypeError);
-
-  // Test constructors
-  Expect.throws(() {
-    new ClassMemberTestPublic(t0Instance);
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ClassMemberTestPublic.short(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ClassMemberTestPrivate(t0Instance);
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ClassMemberTestPrivate.short(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  // Test class variables
-  Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-
-  // Test setters
-  Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
-  }, (e) => e is TypeError);
-
-  // Test methods
-  Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
-  }, (e) => e is TypeError);
-
-  // Test getters
-  Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
-  }, (e) => e is TypeError);
-
-
-  // Test static stuff
-  Expect.throws(() {
-    new ClassMemberTestStatic(t0Instance);
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    ClassMemberTestStatic.staticSetter = t0Instance;
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    ClassMemberTestStatic.staticGetter;
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    ClassMemberTestStatic.staticTest();
-  }, (e) => e is TypeError);
-
-  // Test type parameters
-
-  //# <-- NotGenericFunctionType
-  // Test getters
-  Expect.throws(() {
-    new ClassMemberTestGenericPublic<Future<S0>>.validConstructor().getter;
-  }, (e) => e is TypeError);
-
-  // Test methods
-  Expect.throws(() {
-    new ClassMemberTestGenericPublic<Future<S0>>.validConstructor().test(t0Instance);
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ClassMemberTestGenericPrivate<Future<S0>>.validConstructor().test(t0Instance);
-  }, (e) => e is TypeError);
-
-  // Test setters
-  Expect.throws(() {
-    new ClassMemberTestGenericPublic<Future<S0>>.validConstructor().setter = t0Instance;
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ClassMemberTestGenericPrivate<Future<S0>>.validConstructor().setter = t0Instance;
-  }, (e) => e is TypeError);
-
-  // Test class variables
-  Expect.throws(() {
-    new ClassMemberTestGenericPublic<Future<S0>>.validConstructor().m = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-
-  // Test constructors
-  Expect.throws(() {
-    new ClassMemberTestGenericPublic<Future<S0>>(t0Instance);
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ClassMemberTestGenericPublic<Future<S0>>.short(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ClassMemberTestGenericPrivate<Future<S0>>(t0Instance);
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new ClassMemberTestGenericPrivate<Future<S0>>.short(forgetType(t0Instance));
-  }, (e) => e is TypeError);
-  //# -->
-}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A01_t02.dart
deleted file mode 100644
index ab401ec..0000000
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A01_t02.dart
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left FutureOr: T0 is FutureOr<S0>
- *   and Future<S0> <: T1
- *   and S0 <: T1
- * @description Check that if a type T0 is FutureOr<S0> and Future<S0> is a
- * subtype of T1 but S0 is not a subtype of a type T1, then a type T0 is not a
- * subtype of a type T1.
- * @author ngl@unipro.ru
- */
-/**
- * @description Check that if type T0 is not a subtype of a type T1, then
- * instance of T0 cannot be be assigned to the superclass member of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_FutureOr_fail_A01.dart and 
- * class_member_fail_x02.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-import '../../utils/common.dart';
-import '../../../../Utils/expect.dart';
-
-import "dart:async";
-
-class S0 {}
-
-FutureOr<S0> t0Instance = new S0();
-Future<S0> t1Instance = new Future<S0>.value(new S0()); // S0 is not a subtype of T1 (T1 is Future<S0>)
-
-
-
-
-class ClassMemberSuper1_t02 {
-  Future<S0> m;
-
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
-  }
-
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
-  }
-
-  ClassMemberSuper1_t02.short(this.m);
-
-  void set superSetter(Future<S0> val) {}
-}
-
-class ClassMember1_t02 extends ClassMemberSuper1_t02 {
-
-  ClassMember1_t02() : super(forgetType(t0Instance)) {}
-
-  ClassMember1_t02.named() : super.named(forgetType(t0Instance)) {}
-
-  ClassMember1_t02.short() : super.short(forgetType(t0Instance));
-
-  ClassMember1_t02.valid() : super(null);
-
-  test1() {
-    m = forgetType(t0Instance);
-  }
-
-  test2() {
-    superSetter = forgetType(t0Instance);
-  }
-}
-
-class ClassMemberSuper2_t02<X> {
-  X m;
-
-  ClassMemberSuper2_t02(X value) {
-    m = value;
-  }
-
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
-  }
-
-  ClassMemberSuper2_t02.short(this.m);
-
-  void set superSetter(X val) {}
-}
-
-class ClassMember2_t02<X> extends ClassMemberSuper2_t02<X> {
-
-  ClassMember2_t02() : super(forgetType(t0Instance)) {}
-
-  ClassMember2_t02.named() : super.named(forgetType(t0Instance)) {}
-
-  ClassMember2_t02.short() : super.short(forgetType(t0Instance));
-
-  ClassMember2_t02.valid() : super(null);
-
-  test1() {
-    m = forgetType(t0Instance);
-  }
-
-  test2() {
-    superSetter = forgetType(t0Instance);
-  }
-}
-
-main() {
-  Expect.throws(() {new ClassMember1_t02();}, (e) => e is TypeError);
-  Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
-  Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
-  Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-  Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-  Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
-  }, (e) => e is TypeError);
-  Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
-  }, (e) => e is TypeError);
-
-  // Test type parameters
-
-  //# <-- NotGenericFunctionType
-  Expect.throws(() {new ClassMember2_t02<Future<S0>>();}, (e) => e is TypeError);
-  Expect.throws(() {new ClassMember2_t02<Future<S0>>.short();}, (e) => e is TypeError);
-  Expect.throws(() {new ClassMember2_t02<Future<S0>>.named();}, (e) => e is TypeError);
-  Expect.throws(() {
-    new ClassMember2_t02<Future<S0>>.valid().m = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-  Expect.throws(() {
-    new ClassMember2_t02<Future<S0>>.valid().superSetter = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-  Expect.throws(() {
-    new ClassMember2_t02<Future<S0>>.valid().test1();
-  }, (e) => e is TypeError);
-  Expect.throws(() {
-    new ClassMember2_t02<Future<S0>>.valid().test2();
-  }, (e) => e is TypeError);
-  //# -->
-}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A01_t03.dart
deleted file mode 100644
index bf078a1..0000000
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A01_t03.dart
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left FutureOr: T0 is FutureOr<S0>
- *   and Future<S0> <: T1
- *   and S0 <: T1
- * @description Check that if a type T0 is FutureOr<S0> and Future<S0> is a
- * subtype of T1 but S0 is not a subtype of a type T1, then a type T0 is not a
- * subtype of a type T1.
- * @author ngl@unipro.ru
- */
-/**
- * @description Check that if type T0 is not a subtype of a type T1, then
- * instance of T0 cannot be be assigned to the mixin member of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_FutureOr_fail_A01.dart and 
- * class_member_fail_x03.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-import '../../utils/common.dart';
-import '../../../../Utils/expect.dart';
-
-import "dart:async";
-
-class S0 {}
-
-FutureOr<S0> t0Instance = new S0();
-Future<S0> t1Instance = new Future<S0>.value(new S0()); // S0 is not a subtype of T1 (T1 is Future<S0>)
-
-
-
-
-class ClassMemberSuper1_t03 {
-  Future<S0> m;
-
-  void set superSetter(Future<S0> val) {}
-}
-
-class ClassMember1_t03 extends Object with ClassMemberSuper1_t03 {
-
-  test1() {
-    m = forgetType(t0Instance);
-  }
-
-  test2() {
-    superSetter = forgetType(t0Instance);
-  }
-}
-
-class ClassMemberSuper2_t03<X> {
-  X m;
-
-  void set superSetter(X val) {}
-}
-
-class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
-
-  test1() {
-    m = forgetType(t0Instance);
-  }
-
-  test2() {
-    superSetter = forgetType(t0Instance);
-  }
-}
-
-main() {
-  Expect.throws(() {
-    new ClassMember1_t03().m = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-  Expect.throws(() {
-    new ClassMember1_t03().superSetter = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-  Expect.throws(() {
-    new ClassMember1_t03().test1();
-  }, (e) => e is TypeError);
-  Expect.throws(() {
-    new ClassMember1_t03().test2();
-  }, (e) => e is TypeError);
-
-  // Test type parameters
-
-  //# <-- NotGenericFunctionType
-  Expect.throws(() {
-    new ClassMember2_t03<Future<S0>>().m = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-  Expect.throws(() {
-    new ClassMember2_t03<Future<S0>>().superSetter = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-  Expect.throws(() {
-    new ClassMember2_t03<Future<S0>>().test1();
-  }, (e) => e is TypeError);
-  Expect.throws(() {
-    new ClassMember2_t03<Future<S0>>().test2();
-  }, (e) => e is TypeError);
-  //# -->
-}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A02_t01.dart
index 133bfaa..8a72328 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A02_t01.dart
@@ -29,20 +29,24 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -60,7 +64,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -82,7 +86,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -109,14 +113,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -131,14 +132,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -174,30 +172,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -223,30 +221,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A02_t02.dart
index 6df625b..99f8599 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A02_t02.dart
@@ -29,20 +29,24 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -79,12 +83,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -100,8 +102,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -116,16 +116,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -135,16 +135,16 @@
   Expect.throws(() {new ClassMember2_t02<T1>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<T1>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test1();
+    new ClassMember2_t02<T1>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test2();
+    new ClassMember2_t02<T1>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A02_t03.dart
index 49e0e59..f8f2804 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A02_t03.dart
@@ -29,20 +29,24 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -61,11 +65,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -93,16 +101,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<T1>().m = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test1();
+    new ClassMember2_t03<T1>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test2();
+    new ClassMember2_t03<T1>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A03_t01.dart
index c5fbe65..6ea99fa 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A03_t01.dart
@@ -29,10 +29,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,11 +47,13 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
 class ClassMemberTestStatic {
-  static Future<C1> s;
+  static Future<C1> s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -67,7 +71,7 @@
 }
 
 class ClassMemberTestPublic {
-  Future<C1> m;
+  Future<C1> m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -89,7 +93,7 @@
 }
 
 class ClassMemberTestPrivate {
-  Future<C1> _m;
+  Future<C1> _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -116,14 +120,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -138,14 +139,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -181,30 +179,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -230,30 +228,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Future<C1>>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<Future<C1>>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Future<C1>>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<Future<C1>>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<Future<C1>>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<Future<C1>>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Future<C1>>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<Future<C1>>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<Future<C1>>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<Future<C1>>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Future<C1>>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<Future<C1>>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A03_t02.dart
index 84d4777..9ca0c0c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A03_t02.dart
@@ -29,10 +29,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,11 +47,13 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Future<C1> m;
+  Future<C1> m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -86,12 +90,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -107,8 +109,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -123,16 +123,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -142,16 +142,16 @@
   Expect.throws(() {new ClassMember2_t02<Future<C1>>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<Future<C1>>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Future<C1>>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<Future<C1>>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Future<C1>>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<Future<C1>>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Future<C1>>.valid().test1();
+    new ClassMember2_t02<Future<C1>>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Future<C1>>.valid().test2();
+    new ClassMember2_t02<Future<C1>>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A03_t03.dart
index 5ddd0b5..cec858b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_class_member_fail_A03_t03.dart
@@ -29,10 +29,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,11 +47,13 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  Future<C1> m;
+  Future<C1> m = t1Default;
 
   void set superSetter(Future<C1> val) {}
 }
@@ -68,11 +72,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -100,16 +108,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<Future<C1>>().m = forgetType(t0Instance);
+    new ClassMember2_t03<Future<C1>>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Future<C1>>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<Future<C1>>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Future<C1>>().test1();
+    new ClassMember2_t03<Future<C1>>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Future<C1>>().test2();
+    new ClassMember2_t03<Future<C1>>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_global_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_global_variable_fail_A01_t01.dart
deleted file mode 100644
index 4b7989a..0000000
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_global_variable_fail_A01_t01.dart
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left FutureOr: T0 is FutureOr<S0>
- *   and Future<S0> <: T1
- *   and S0 <: T1
- * @description Check that if a type T0 is FutureOr<S0> and Future<S0> is a
- * subtype of T1 but S0 is not a subtype of a type T1, then a type T0 is not a
- * subtype of a type T1.
- * @author ngl@unipro.ru
- */
-/**
- * @description Check that if type T0 is not a subtype of a type T1, then
- * instance of T0 cannot be be assigned to the to global variable of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_FutureOr_fail_A01.dart and 
- * global_variable_fail_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-import '../../utils/common.dart';
-import '../../../../Utils/expect.dart';
-
-import "dart:async";
-
-class S0 {}
-
-FutureOr<S0> t0Instance = new S0();
-Future<S0> t1Instance = new Future<S0>.value(new S0()); // S0 is not a subtype of T1 (T1 is Future<S0>)
-
-
-
-
-class GlobalVariableTest {
-  GlobalVariableTest() {
-    t1Instance = forgetType(t0Instance);
-  }
-
-  GlobalVariableTest.valid() {}
-
-  foo() {
-    t1Instance = forgetType(t0Instance);
-  }
-
-  static test() {
-    t1Instance = forgetType(t0Instance);
-  }
-}
-
-main() {
-  bar () {
-    t1Instance = forgetType(t0Instance);
-  }
-
-  Expect.throws(() {
-    t1Instance = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    bar();
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new GlobalVariableTest();
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new GlobalVariableTest.valid().foo();
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    GlobalVariableTest.test();
-  }, (e) => e is TypeError);
-}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_global_variable_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_global_variable_fail_A02_t01.dart
index 274e12c..fe3ce81 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_global_variable_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_global_variable_fail_A02_t01.dart
@@ -29,15 +29,19 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_global_variable_fail_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_global_variable_fail_A03_t01.dart
index c38f324..4846fdb 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_global_variable_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_global_variable_fail_A03_t01.dart
@@ -29,10 +29,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,6 +47,8 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_local_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_local_variable_fail_A01_t01.dart
deleted file mode 100644
index 7d755ee..0000000
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_local_variable_fail_A01_t01.dart
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left FutureOr: T0 is FutureOr<S0>
- *   and Future<S0> <: T1
- *   and S0 <: T1
- * @description Check that if a type T0 is FutureOr<S0> and Future<S0> is a
- * subtype of T1 but S0 is not a subtype of a type T1, then a type T0 is not a
- * subtype of a type T1.
- * @author ngl@unipro.ru
- */
-/**
- * @description Check that if type T0 is not a subtype of a type T1, then
- * instance of T0 cannot be be assigned to the to local variable of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_FutureOr_fail_A01.dart and 
- * local_variable_fail_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-import '../../utils/common.dart';
-import '../../../../Utils/expect.dart';
-
-import "dart:async";
-
-class S0 {}
-
-FutureOr<S0> t0Instance = new S0();
-Future<S0> t1Instance = new Future<S0>.value(new S0()); // S0 is not a subtype of T1 (T1 is Future<S0>)
-
-
-
-
-class LocalVariableTest {
-
-  LocalVariableTest() {
-    Future<S0> t1 = null;
-    t1 = forgetType(t0Instance);
-  }
-
-  LocalVariableTest.valid() {}
-
-  static staticTest() {
-    Future<S0> t1 = null;
-    t1 = forgetType(t0Instance);
-  }
-
-  test() {
-    Future<S0> t1 = null;
-    t1 = forgetType(t0Instance);
-  }
-}
-
-main() {
-  bar () {
-    Future<S0> t1 = null;
-    t1 = forgetType(t0Instance);
-  }
-
-  Expect.throws(() {
-    Future<S0> t1 = null;
-    t1 = forgetType(t0Instance);
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    bar();
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new LocalVariableTest();
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    new LocalVariableTest.valid().test();
-  }, (e) => e is TypeError);
-
-  Expect.throws(() {
-    LocalVariableTest.staticTest();
-  }, (e) => e is TypeError);
-}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_local_variable_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_local_variable_fail_A02_t01.dart
index f85e77a..eb49bba 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_local_variable_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_local_variable_fail_A02_t01.dart
@@ -29,47 +29,46 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_local_variable_fail_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_local_variable_fail_A03_t01.dart
index 668dc22..0383390 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_local_variable_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_local_variable_fail_A03_t01.dart
@@ -29,10 +29,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,38 +47,35 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    Future<C1> t1 = null;
-    t1 = forgetType(t0Instance);
+    Future<C1> t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    Future<C1> t1 = null;
-    t1 = forgetType(t0Instance);
+    Future<C1> t1 = forgetType(t0Instance);
   }
 
   test() {
-    Future<C1> t1 = null;
-    t1 = forgetType(t0Instance);
+    Future<C1> t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    Future<C1> t1 = null;
-    t1 = forgetType(t0Instance);
+    Future<C1> t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    Future<C1> t1 = null;
-    t1 = forgetType(t0Instance);
+    Future<C1> t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_return_value_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_return_value_fail_A01_t01.dart
deleted file mode 100644
index f78f19b..0000000
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_return_value_fail_A01_t01.dart
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left FutureOr: T0 is FutureOr<S0>
- *   and Future<S0> <: T1
- *   and S0 <: T1
- * @description Check that if a type T0 is FutureOr<S0> and Future<S0> is a
- * subtype of T1 but S0 is not a subtype of a type T1, then a type T0 is not a
- * subtype of a type T1.
- * @author ngl@unipro.ru
- */
-/**
- * @description Check that if type T0 not a subtype of a type T1, then instance
- * of T0 cannot be be used as a return value of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_FutureOr_fail_A01.dart and 
- * return_value_fail_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-import '../../utils/common.dart';
-import '../../../../Utils/expect.dart';
-
-import "dart:async";
-
-class S0 {}
-
-FutureOr<S0> t0Instance = new S0();
-Future<S0> t1Instance = new Future<S0>.value(new S0()); // S0 is not a subtype of T1 (T1 is Future<S0>)
-
-
-
-
-Future<S0> returnValueFunc() => forgetType(t0Instance);
-
-class ReturnValueTest {
-  static Future<S0> staticTestMethod() => forgetType(t0Instance);
-
-  Future<S0> testMethod() => forgetType(t0Instance);
-
-  Future<S0> get testGetter => forgetType(t0Instance);
-}
-
-class ReturnValueGen<X> {
-  X testMethod() => forgetType(t0Instance);
-  X get testGetter => forgetType(t0Instance);
-}
-
-main() {
-  Future<S0> returnValueLocalFunc() => forgetType(t0Instance);
-
-  Expect.throws(() {returnValueFunc();}, (e) => e is TypeError);
-  Expect.throws(() {returnValueLocalFunc();}, (e) => e is TypeError);
-  Expect.throws(() {ReturnValueTest.staticTestMethod();}, (e) => e is TypeError);
-
-  Expect.throws(() {new ReturnValueTest().testMethod();}, (e) => e is TypeError);
-  Expect.throws(() {new ReturnValueTest().testGetter;}, (e) => e is TypeError);
-
-  // Test type parameters
-
-  //# <-- NotGenericFunctionType
-  Expect.throws(() {new ReturnValueGen<Future<S0>>().testMethod();}, (e) => e is TypeError);
-  Expect.throws(() {new ReturnValueGen<Future<S0>>().testGetter;}, (e) => e is TypeError);
-  //# -->
-}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_return_value_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_return_value_fail_A02_t01.dart
index 053b8b6..9289d80 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_return_value_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_return_value_fail_A02_t01.dart
@@ -29,15 +29,19 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_return_value_fail_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_return_value_fail_A03_t01.dart
index f6d23f1..6ed6215 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_return_value_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_fail_return_value_fail_A03_t01.dart
@@ -29,10 +29,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,6 +47,8 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A01_t01.dart
index e3daa06..3217a67 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A01_t01.dart
@@ -28,15 +28,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A02_t01.dart
index 702a89e..6e4cef9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A02_t01.dart
@@ -28,15 +28,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A03_t01.dart
index 80ee7e0..8bde8c5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A03_t01.dart
@@ -28,17 +28,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A04_t01.dart
index 1235d7c..8212b51 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_global_variable_A04_t01.dart
@@ -29,17 +29,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A01_t01.dart
index b8eab29..39b1836 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A01_t01.dart
@@ -28,15 +28,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A02_t01.dart
index b0f4f02..ea996eb 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A02_t01.dart
@@ -28,15 +28,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A03_t01.dart
index a05225a..017c1f4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A03_t01.dart
@@ -28,17 +28,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A04_t01.dart
index 9a987b7..69545e8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_local_variable_A04_t01.dart
@@ -29,17 +29,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A01_t01.dart
index aa21af5..1cb4ef2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A01_t01.dart
@@ -28,15 +28,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A02_t01.dart
index dc012e3..c137ee4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A02_t01.dart
@@ -28,15 +28,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A03_t01.dart
index ab3c4ad..bb1a0d9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A03_t01.dart
@@ -28,17 +28,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A04_t01.dart
index a79e6ae..6a31d2b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_FutureOr_return_value_A04_t01.dart
@@ -29,17 +29,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t01.dart
index 16ec846..84fd5f7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t01.dart
@@ -79,14 +79,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t02.dart
index 0e1b615..1f15f9d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t02.dart
@@ -36,12 +36,10 @@
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -66,12 +64,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t03.dart
index 48037eb..289f9ee 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t03.dart
@@ -34,7 +34,7 @@
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -48,6 +48,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -67,7 +70,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>();
+  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t01.dart
index 295c6fc..b5ed296 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t01.dart
@@ -80,14 +80,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t02.dart
index 9a010d4..db73fa3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t02.dart
@@ -37,12 +37,10 @@
 class ClassMemberSuper1_t02 {
   dynamic m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -67,12 +65,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t03.dart
index 6be23d3..1ee84c4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t03.dart
@@ -35,7 +35,7 @@
 
 
 class ClassMemberMixin1_t03 {
-  dynamic m;
+  dynamic m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -49,6 +49,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -68,7 +71,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<dynamic> c2 = new ClassMember2_t03<dynamic>();
+  ClassMember2_t03<dynamic> c2 = new ClassMember2_t03<dynamic>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t01.dart
index a10cca3..0c36e9e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t01.dart
@@ -27,11 +27,15 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 namedArgumentsFunc1(Object? t1, {Object? t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t02.dart
index df6a792..0b1ddfa 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t02.dart
@@ -27,11 +27,15 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t03.dart
index c261941..4dcbb3b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t03.dart
@@ -27,11 +27,15 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A02_t01.dart
index 27e526b..5ccead0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A02_t01.dart
@@ -27,11 +27,15 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 namedArgumentsFunc1(Object? t1, {Object? t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A02_t02.dart
index 0c71b22..3b10abb 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A02_t02.dart
@@ -27,11 +27,15 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A02_t03.dart
index 660ffb5..b5f411b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A02_t03.dart
@@ -27,11 +27,15 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t01.dart
index e7124f1..30052b1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t01.dart
@@ -27,11 +27,15 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
@@ -81,14 +85,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t02.dart
index a17abdc..299aec2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t02.dart
@@ -27,23 +27,25 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
   Object? m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -68,12 +70,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t03.dart
index 9de8731..079ca8e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t03.dart
@@ -27,16 +27,20 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Object? m;
+  Object? m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -50,6 +54,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -69,7 +76,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Object?> c2 = new ClassMember2_t03<Object?>();
+  ClassMember2_t03<Object?> c2 = new ClassMember2_t03<Object?>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A02_t01.dart
index 8708869..91e1953 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A02_t01.dart
@@ -27,11 +27,15 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
@@ -81,14 +85,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A02_t02.dart
index 9b9f4c0..011456b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A02_t02.dart
@@ -27,23 +27,25 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
   Object? m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -68,12 +70,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A02_t03.dart
index 866a533..6f5fd24 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A02_t03.dart
@@ -27,16 +27,20 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Object? m;
+  Object? m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -50,6 +54,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -69,7 +76,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Object?> c2 = new ClassMember2_t03<Object?>();
+  ClassMember2_t03<Object?> c2 = new ClassMember2_t03<Object?>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_global_variable_A01_t01.dart
index daa5b45..abf97f0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_global_variable_A01_t01.dart
@@ -27,11 +27,15 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_global_variable_A02_t01.dart
index 7e7654d..d393ecd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_global_variable_A02_t01.dart
@@ -27,11 +27,15 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_local_variable_A01_t01.dart
index e82c2e7..517b507 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_local_variable_A01_t01.dart
@@ -27,11 +27,15 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_local_variable_A02_t01.dart
index 92cdeb9..6daed95 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_local_variable_A02_t01.dart
@@ -27,11 +27,15 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_return_value_A01_t01.dart
index 5ff8736..dd9c80f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_return_value_A01_t01.dart
@@ -27,11 +27,15 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_top_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_return_value_A02_t01.dart
index 2fb7024..1ae7eae 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_top_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_return_value_A02_t01.dart
@@ -27,11 +27,15 @@
 import '../../utils/common.dart';
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_arguments_binding_A01_t01.dart
index 4d8f117..f49babd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_arguments_binding_A01_t01.dart
@@ -26,14 +26,18 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_arguments_binding_A01_t02.dart
index ad190e3..a1f70ba 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_arguments_binding_A01_t02.dart
@@ -26,14 +26,18 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_arguments_binding_A01_t03.dart
index dfdacb5..7fa62f5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_arguments_binding_A01_t03.dart
@@ -26,14 +26,18 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_class_member_A01_t01.dart
index accde47..5efb197 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_class_member_A01_t01.dart
@@ -26,14 +26,18 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
@@ -83,14 +87,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_class_member_A01_t02.dart
index cc68a5a..3727548 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_class_member_A01_t02.dart
@@ -26,26 +26,28 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -70,12 +72,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_class_member_A01_t03.dart
index f274167..63a2379 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_class_member_A01_t03.dart
@@ -26,19 +26,23 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -52,6 +56,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -71,7 +78,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>();
+  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t01.dart
index 7d0e95a..a6a4baf 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t01.dart
@@ -27,14 +27,18 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t02.dart
index 0d9c070..19099c9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t02.dart
@@ -27,14 +27,18 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t03.dart
index 4828d74..c3b60b7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t03.dart
@@ -27,21 +27,25 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -137,8 +141,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_class_member_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_class_member_fail_A01_t01.dart
index e770df8..68ad159 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_class_member_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_class_member_fail_A01_t01.dart
@@ -27,19 +27,23 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -57,7 +61,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -79,7 +83,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -106,14 +110,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -128,14 +129,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -171,30 +169,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -220,30 +218,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_class_member_fail_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_class_member_fail_A01_t02.dart
index 2d901f5..ff5ab72 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_class_member_fail_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_class_member_fail_A01_t02.dart
@@ -27,19 +27,23 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -76,12 +80,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -97,8 +99,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -113,16 +113,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -132,16 +132,16 @@
   Expect.throws(() {new ClassMember2_t02<T1>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<T1>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test1();
+    new ClassMember2_t02<T1>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test2();
+    new ClassMember2_t02<T1>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_class_member_fail_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_class_member_fail_A01_t03.dart
index 5ee6239..be517f7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_class_member_fail_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_class_member_fail_A01_t03.dart
@@ -27,19 +27,23 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -58,11 +62,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -90,16 +98,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<T1>().m = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test1();
+    new ClassMember2_t03<T1>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test2();
+    new ClassMember2_t03<T1>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_global_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_global_variable_fail_A01_t01.dart
index 73d005c..e5d7488 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_global_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_global_variable_fail_A01_t01.dart
@@ -27,14 +27,18 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_local_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_local_variable_fail_A01_t01.dart
index 03ad869..f551fca 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_local_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_local_variable_fail_A01_t01.dart
@@ -27,46 +27,45 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_return_value_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_return_value_fail_A01_t01.dart
index f521809..9674ad7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_return_value_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_fail_return_value_fail_A01_t01.dart
@@ -27,14 +27,18 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_global_variable_A01_t01.dart
index 8d0467a..7f92dc6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_global_variable_A01_t01.dart
@@ -26,14 +26,18 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_local_variable_A01_t01.dart
index ca06b04..0f447be 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_local_variable_A01_t01.dart
@@ -26,14 +26,18 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_return_value_A01_t01.dart
index 6405e28..0ad4994 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_type_variable_bound_return_value_A01_t01.dart
@@ -26,14 +26,18 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A01_t01.dart
index fd110d4..3265865 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A01_t01.dart
@@ -34,6 +34,7 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -47,15 +48,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
 positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A01_t02.dart
index 1b8354d..ab51725 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A01_t02.dart
@@ -34,6 +34,7 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -47,15 +48,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A01_t03.dart
index a88b881..0cd8b8b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A01_t03.dart
@@ -34,6 +34,7 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -47,15 +48,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A02_t01.dart
index b277787..009048b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A02_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
 positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A02_t02.dart
index 48f8ebb..0277be6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A02_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A02_t03.dart
index 0dde944..bb01834 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A02_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A03_t01.dart
index 9cbe13a..ede6b16 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A03_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
 positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A03_t02.dart
index 1d43b9c..bd45ac8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A03_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A03_t03.dart
index 57f2843..093da2d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A03_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A04_t01.dart
index 1203f97..93d378a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A04_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
 positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A04_t02.dart
index 42143ca..5ecaa37 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A04_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A04_t03.dart
index 57b2b45..4b37116 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A04_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A05_t01.dart
index f161a74..873b3ab 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A05_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,23 +57,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
 positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A05_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A05_t02.dart
index 9c65d66..ab38981 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A05_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,23 +57,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A05_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A05_t03.dart
index d44049a..c7ba474 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_arguments_binding_A05_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,23 +57,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A01_t01.dart
index ee34f33..abc5637 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A01_t01.dart
@@ -34,6 +34,7 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -47,15 +48,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
@@ -104,14 +108,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A01_t02.dart
index e473f74..d7aace0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A01_t02.dart
@@ -34,6 +34,7 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -47,26 +48,27 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -91,12 +93,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A01_t03.dart
index 9e5e045..4dc95a7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A01_t03.dart
@@ -34,6 +34,7 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -47,19 +48,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -73,6 +77,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -92,7 +99,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>();
+  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A02_t01.dart
index 3154663..53c5844 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A02_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
@@ -140,14 +143,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A02_t02.dart
index 95b8df5..cfdca2b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A02_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,34 +75,35 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -127,12 +128,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A02_t03.dart
index dc873e4..fd8f201 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A02_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,27 +75,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -109,6 +112,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A03_t01.dart
index 859bd10..56d6c1b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A03_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
@@ -140,14 +143,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A03_t02.dart
index 4c09ff2..c1d5fbd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A03_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,34 +75,35 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -127,12 +128,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A03_t03.dart
index 2b8d6bf..58c5b9c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A03_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,27 +75,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -109,6 +112,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A04_t01.dart
index 820d894..55df9ba 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A04_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
@@ -140,14 +143,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A04_t02.dart
index 97daaad..6f60944 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A04_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,34 +75,35 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -127,12 +128,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A04_t03.dart
index 90fa1fc..d7c3b00 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A04_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,27 +75,30 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -109,6 +112,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A05_t01.dart
index 064521b..b489f54 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A05_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,23 +57,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
@@ -122,14 +125,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A05_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A05_t02.dart
index b32b870..c8f0324 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A05_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,34 +57,35 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -109,12 +110,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A05_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A05_t03.dart
index e791893..3f83594 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_class_member_A05_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,27 +57,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -91,6 +94,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A11_t01.dart
index de83888..8391d53 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A11_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,15 +48,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A11_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A11_t02.dart
index 879b957..cfaa15e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A11_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A11_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,15 +48,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A11_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A11_t03.dart
index d14501a..a94da19 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A11_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A11_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,21 +48,24 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -158,8 +161,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A12_t01.dart
index 34aeb08..fca398f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A12_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -57,15 +57,18 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A12_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A12_t02.dart
index e250f70..4aef2ca 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A12_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A12_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -57,15 +57,18 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A12_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A12_t03.dart
index b960cba..0203b59 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A12_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A12_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -57,21 +57,24 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -167,8 +170,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A21_t01.dart
index 3adf8af..56be034 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A21_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A21_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A21_t02.dart
index 2083974..4766e43 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A21_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A21_t02.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A21_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A21_t03.dart
index 8c48d6d..d0b0e11 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A21_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A21_t03.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A22_t01.dart
index 00544d7..00151ee 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A22_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A22_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A22_t02.dart
index 50aa762..e3bdf1c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A22_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A22_t02.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A22_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A22_t03.dart
index 25ed80d..0b78f65 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A22_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A22_t03.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,29 +77,32 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -195,8 +198,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A23_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A23_t01.dart
index a43746c..7e6bacb 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A23_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A23_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A23_t02.dart
index 4d06709..6baa597 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A23_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A23_t02.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A23_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A23_t03.dart
index d9d4d41..f4b752b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A23_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A23_t03.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A31_t01.dart
index b29a648..b50b98f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A31_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,15 +49,18 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A31_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A31_t02.dart
index 40901f0..42aea63 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A31_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A31_t02.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,15 +49,18 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A31_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A31_t03.dart
index 0630c18..db31628 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A31_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A31_t03.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,22 +49,25 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -160,8 +163,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A32_t01.dart
index 286d306..4b23720 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A32_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A32_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A32_t02.dart
index 7d769c6..887f21b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A32_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A32_t02.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A32_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A32_t03.dart
index 03849b6..a6749cc 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A32_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A32_t03.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,29 +77,32 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -195,8 +198,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A33_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A33_t01.dart
index 82f23b2..355f0d7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A33_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,23 +59,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A33_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A33_t02.dart
index fbe5220..a5428c1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A33_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A33_t02.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,23 +59,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A33_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A33_t03.dart
index b072f0f..9c35e4e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A33_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A33_t03.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,29 +59,32 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -177,8 +180,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A41_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A41_t01.dart
index 93ba659..3b0e077 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A41_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -48,15 +48,17 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A41_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A41_t02.dart
index 5729ef8..875e640 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A41_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A41_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -48,15 +48,17 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A41_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A41_t03.dart
index 8f7b932..6747904 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A41_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A41_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -48,22 +48,24 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -159,8 +161,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A42_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A42_t01.dart
index 9723300..e714ffa 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A42_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A42_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A42_t02.dart
index 91711e1..45bfca1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A42_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A42_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A42_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A42_t03.dart
index c9bd569..a3b8056 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A42_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A42_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,29 +74,32 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -192,8 +195,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A43_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A43_t01.dart
index b40f7bd..dbf9ea6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A43_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,23 +58,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A43_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A43_t02.dart
index 6eec471..3cd1461 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A43_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A43_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,23 +58,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A43_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A43_t03.dart
index 5f648cf..96d8469 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A43_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A43_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,29 +58,32 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -176,8 +179,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A51_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A51_t01.dart
index e92973d..db8982a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A51_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A51_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -55,15 +55,18 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A51_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A51_t02.dart
index 3bf9038..73ec3ab 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A51_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A51_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -55,15 +55,18 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A51_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A51_t03.dart
index 15dff22..29fb762 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A51_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A51_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -55,21 +55,24 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -165,8 +168,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A52_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A52_t01.dart
index 5d7198f..0600292 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A52_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A52_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A52_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A52_t02.dart
index 1622594..de8a681 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A52_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A52_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A52_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A52_t03.dart
index b4159d5..853bc8a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A52_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A52_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,29 +74,32 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -192,8 +195,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A53_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A53_t01.dart
index 022c4bb..e708bb3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A53_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A53_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,23 +58,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A53_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A53_t02.dart
index 58c6753..957f1a7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A53_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A53_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,23 +58,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A53_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A53_t03.dart
index d008a27..c77c9ac 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A53_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_arguments_binding_fail_A53_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,29 +58,32 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -176,8 +179,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A11_t01.dart
index d6e7f02..3c9e5df 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A11_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,19 +48,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -78,7 +81,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -100,7 +103,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -127,14 +130,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -149,14 +149,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -192,30 +189,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -241,30 +238,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A11_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A11_t02.dart
index 18fd066..810f726 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A11_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A11_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,19 +48,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -97,12 +100,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -118,8 +119,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -134,16 +133,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -153,16 +152,16 @@
   Expect.throws(() {new ClassMember2_t02<T1>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<T1>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test1();
+    new ClassMember2_t02<T1>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test2();
+    new ClassMember2_t02<T1>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A11_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A11_t03.dart
index 2a4bd9a..459e84a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A11_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A11_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,19 +48,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -79,11 +82,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -111,16 +118,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<T1>().m = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test1();
+    new ClassMember2_t03<T1>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test2();
+    new ClassMember2_t03<T1>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A12_t01.dart
index bb34eca..58cb449 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A12_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -57,19 +57,22 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -87,7 +90,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -109,7 +112,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -136,14 +139,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -158,14 +158,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -201,30 +198,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A12_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A12_t02.dart
index 9907168..8ff6391 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A12_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A12_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -57,19 +57,22 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -106,12 +109,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -127,8 +128,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -143,16 +142,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A12_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A12_t03.dart
index 2da59b3..ee429fb 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A12_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A12_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -57,19 +57,22 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -88,11 +91,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A21_t01.dart
index 02660be..2f6986b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A21_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A21_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A21_t02.dart
index e16c7cf..c7b8932 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A21_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A21_t02.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A21_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A21_t03.dart
index dfc9705..f2c0135 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A21_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A21_t03.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A22_t01.dart
index db3e679..48f36f0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A22_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,27 +77,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -115,7 +118,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -137,7 +140,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -164,14 +167,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -186,14 +186,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -229,30 +226,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A22_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A22_t02.dart
index c5eaf15..a29e83a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A22_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A22_t02.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,27 +77,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -134,12 +137,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -155,8 +156,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -171,16 +170,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A22_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A22_t03.dart
index 5b38415..7ffed6f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A22_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A22_t03.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,27 +77,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -116,11 +119,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A23_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A23_t01.dart
index eddc5cf..3fa83e7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A23_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A23_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A23_t02.dart
index ca01109..3e0e65c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A23_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A23_t02.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A23_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A23_t03.dart
index dc7ce2c..204c7ea 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A23_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A23_t03.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A31_t01.dart
index 0d84c99..244efee 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A31_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,20 +49,23 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -80,7 +83,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -102,7 +105,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -129,14 +132,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -151,14 +151,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -194,30 +191,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -243,30 +240,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A31_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A31_t02.dart
index 88a986d..1b39b0c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A31_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A31_t02.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,20 +49,23 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -99,12 +102,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -120,8 +121,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -136,16 +135,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -155,16 +154,16 @@
   Expect.throws(() {new ClassMember2_t02<T1>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<T1>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test1();
+    new ClassMember2_t02<T1>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test2();
+    new ClassMember2_t02<T1>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A31_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A31_t03.dart
index 6dfe20e..218dd5f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A31_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A31_t03.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,20 +49,23 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -81,11 +84,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -113,16 +120,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<T1>().m = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test1();
+    new ClassMember2_t03<T1>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test2();
+    new ClassMember2_t03<T1>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A32_t01.dart
index 19c62f4..673ab1d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A32_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,27 +77,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -115,7 +118,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -137,7 +140,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -164,14 +167,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -186,14 +186,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -229,30 +226,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A32_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A32_t02.dart
index 6d09198..888f1e4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A32_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A32_t02.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,27 +77,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -134,12 +137,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -155,8 +156,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -171,16 +170,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A32_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A32_t03.dart
index 32625d9..779c878 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A32_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A32_t03.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,27 +77,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -116,11 +119,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A33_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A33_t01.dart
index 599dc9d..089e893 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A33_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,27 +59,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -97,7 +100,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -119,7 +122,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -146,14 +149,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -168,14 +168,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -211,30 +208,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A33_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A33_t02.dart
index 386eafe..db55fce 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A33_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A33_t02.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,27 +59,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -116,12 +119,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -137,8 +138,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -153,16 +152,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A33_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A33_t03.dart
index 8c5b2e3..15eef8d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A33_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A33_t03.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,27 +59,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -98,11 +101,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A41_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A41_t01.dart
index d8bdf1a..885e7cd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A41_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -48,20 +48,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -79,7 +81,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -101,7 +103,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -128,14 +130,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -150,14 +149,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -193,30 +189,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -242,30 +238,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A41_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A41_t02.dart
index e91e7e8..d84e720 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A41_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A41_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -48,20 +48,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -98,12 +100,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -119,8 +119,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -135,16 +133,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -154,16 +152,16 @@
   Expect.throws(() {new ClassMember2_t02<T1>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<T1>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test1();
+    new ClassMember2_t02<T1>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test2();
+    new ClassMember2_t02<T1>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A41_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A41_t03.dart
index efe62a9..efe1de5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A41_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A41_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -48,20 +48,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -80,11 +82,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -112,16 +118,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<T1>().m = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test1();
+    new ClassMember2_t03<T1>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test2();
+    new ClassMember2_t03<T1>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A42_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A42_t01.dart
index 5c44b5b..545bd53 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A42_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -112,7 +115,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -134,7 +137,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -161,14 +164,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -183,14 +183,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -226,30 +223,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A42_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A42_t02.dart
index 8a5dbd1..adaff22 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A42_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A42_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -131,12 +134,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -152,8 +153,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -168,16 +167,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A42_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A42_t03.dart
index 484ff21..80e59a0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A42_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A42_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -113,11 +116,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A43_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A43_t01.dart
index e52622d..d7d63b9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A43_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,27 +58,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -96,7 +99,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -118,7 +121,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -145,14 +148,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -167,14 +167,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -210,30 +207,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A43_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A43_t02.dart
index 744164d..5570d76 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A43_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A43_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,27 +58,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -115,12 +118,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -136,8 +137,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -152,16 +151,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A43_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A43_t03.dart
index ec4614c..3c8a115 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A43_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A43_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,27 +58,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -97,11 +100,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A51_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A51_t01.dart
index a0351c5..8d3b2f6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A51_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A51_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -55,19 +55,22 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -85,7 +88,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -107,7 +110,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -134,14 +137,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -156,14 +156,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -199,30 +196,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A51_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A51_t02.dart
index aed5f30..3cdd701 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A51_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A51_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -55,19 +55,22 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -104,12 +107,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -125,8 +126,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -141,16 +140,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A51_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A51_t03.dart
index 6faf737..3c55c9a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A51_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A51_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -55,19 +55,22 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -86,11 +89,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A52_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A52_t01.dart
index 0ad6a0a..9f473da 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A52_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A52_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -112,7 +115,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -134,7 +137,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -161,14 +164,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -183,14 +183,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -226,30 +223,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A52_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A52_t02.dart
index a40d0f8..0c31bf2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A52_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A52_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -131,12 +134,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -152,8 +153,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -168,16 +167,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A52_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A52_t03.dart
index b03fb0e..7e0bb9f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A52_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A52_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -113,11 +116,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A53_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A53_t01.dart
index e9bf651..55f77d5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A53_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A53_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,27 +58,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -96,7 +99,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -118,7 +121,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -145,14 +148,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -167,14 +167,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -210,30 +207,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A53_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A53_t02.dart
index bfe3172..3eef0f2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A53_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A53_t02.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,27 +58,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -115,12 +118,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -136,8 +137,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -152,16 +151,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A53_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A53_t03.dart
index a9933a1..38dc0e3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A53_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_class_member_fail_A53_t03.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,27 +58,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -97,11 +100,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A11_t01.dart
index d5f2a24..a72f9a3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A11_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,15 +48,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A12_t01.dart
index 1b9fb52..e9231a8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A12_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -57,15 +57,18 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A21_t01.dart
index 618b852..442dc0d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A21_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A22_t01.dart
index c499b73..0ee8994 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A22_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A23_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A23_t01.dart
index 328725c..a3b81fd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A23_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A31_t01.dart
index 89698be..b4728fe 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A31_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,15 +49,18 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A32_t01.dart
index 9b57531..a61bcf8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A32_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A33_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A33_t01.dart
index 7286c48..23ea802 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A33_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,23 +59,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A41_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A41_t01.dart
index bfd493e..29e5c1a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A41_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -48,15 +48,17 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A42_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A42_t01.dart
index 6e2a4bf..95ecdbc 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A42_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A43_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A43_t01.dart
index f9fd8f4..3ba814f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A43_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,23 +58,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A51_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A51_t01.dart
index a360d9a..fcaf865 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A51_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A51_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -55,15 +55,18 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A52_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A52_t01.dart
index 73ca977..63dd09f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A52_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A52_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A53_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A53_t01.dart
index 075e698..b3b21d9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A53_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_global_variable_fail_A53_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,23 +58,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A11_t01.dart
index 7390b49..13382df 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A11_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,46 +48,44 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A12_t01.dart
index 67a7ce4..262f6c1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A12_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -57,46 +57,44 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A21_t01.dart
index 2bca257..d91b8c6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A21_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A22_t01.dart
index cee1435..69b48a0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A22_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,54 +77,52 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A23_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A23_t01.dart
index bb0e5f2..5e10cf7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A23_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A31_t01.dart
index 99c4e0f..c638826 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A31_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,47 +49,45 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A32_t01.dart
index c9659ac..c3b8ce5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A32_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,54 +77,52 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A33_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A33_t01.dart
index b825fb0..a9cfcb3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A33_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,54 +59,52 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A41_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A41_t01.dart
index 1f821a6..bca91e8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A41_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -48,47 +48,44 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A42_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A42_t01.dart
index 74c2527..a49451b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A42_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,54 +74,52 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A43_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A43_t01.dart
index 537a053..57e8a36 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A43_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,54 +58,52 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A51_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A51_t01.dart
index f71f212..04dee81 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A51_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A51_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -55,46 +55,44 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A52_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A52_t01.dart
index 7bcd83e..6e0f90f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A52_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A52_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,54 +74,52 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A53_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A53_t01.dart
index 866a11f..a03bea9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A53_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_local_variable_fail_A53_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,54 +58,52 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A11_t01.dart
index 1f60386..5b751ab 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A11_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,15 +48,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A12_t01.dart
index 3ba2bac..e68b170 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A12_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -57,15 +57,18 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A21_t01.dart
index 32b2803..bd7679b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A21_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A22_t01.dart
index 15b7e5d..5c3b1c3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A22_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A23_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A23_t01.dart
index aeb4e4a..67438f4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A23_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A31_t01.dart
index 7230f9d..ccf6231 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A31_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,15 +49,18 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A32_t01.dart
index 6d43527..5c3d622 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A32_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A33_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A33_t01.dart
index 7652c7e..5c2525e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A33_t01.dart
@@ -36,7 +36,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,23 +59,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A41_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A41_t01.dart
index 8c8d7e0..ed9c469 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A41_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -48,15 +48,17 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A42_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A42_t01.dart
index 0b5084f..4af48e2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A42_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A43_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A43_t01.dart
index 3c2f5f3..b93750a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A43_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,23 +58,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A51_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A51_t01.dart
index 355eb6d..86e3746 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A51_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A51_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -55,15 +55,18 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A52_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A52_t01.dart
index 7ab1119..088777e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A52_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A52_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A53_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A53_t01.dart
index 504d2e5..cfa7807 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A53_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_fail_return_value_fail_A53_t01.dart
@@ -35,7 +35,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,23 +58,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A01_t01.dart
index 66a35f6..cfc2500 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A01_t01.dart
@@ -34,6 +34,7 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -47,15 +48,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A02_t01.dart
index d2167f9..3b430e7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A02_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A03_t01.dart
index adb7e25..d56a369 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A03_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A04_t01.dart
index b5907e6..13b7640 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A04_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A05_t01.dart
index 97f4ba2..fd1b690 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_global_variable_A05_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,23 +57,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A01_t01.dart
index 03fff2b..0f8dc06 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A01_t01.dart
@@ -34,6 +34,7 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -47,15 +48,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A02_t01.dart
index 3b69907..0783be1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A02_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A03_t01.dart
index 7982a49..5f35228 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A03_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A04_t01.dart
index 0031360..735cf2f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A04_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A05_t01.dart
index 706b476..f62d10d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_local_variable_A05_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,23 +57,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A01_t01.dart
index e59d41b..e689ff5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A01_t01.dart
@@ -34,6 +34,7 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -47,15 +48,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A02_t01.dart
index aa341df..5160768 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A02_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A03_t01.dart
index b8658f1..3b10543 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A03_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A04_t01.dart
index 6c3e0dd..a963a68 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A04_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A05_t01.dart
index 6d0bf7f..7d77154 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/named_function_types_return_value_A05_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,23 +57,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A01_t01.dart
index 95b33ea..89a6f4c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A01_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
 positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A01_t02.dart
index 0d751e9..839482e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A01_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A01_t03.dart
index 06654f2..bba0362 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A01_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A02_t01.dart
index 71f10bd..1d0a5c2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A02_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
 positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A02_t02.dart
index f1377d3..7160076 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A02_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A02_t03.dart
index 15f71e3..227d782 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A02_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A03_t01.dart
index 6e516db..c808aad 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A03_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
 positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A03_t02.dart
index 41da80a..5ad5aae 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A03_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A03_t03.dart
index 14a9e30..77e0624 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A03_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A04_t01.dart
index a053963..5e17cb3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A04_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,15 +48,18 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
 positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A04_t02.dart
index 20c5bf0..ce4f8d9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A04_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,15 +48,18 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A04_t03.dart
index 220b87b..4031d7f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A04_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,15 +48,18 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A11_t01.dart
index 8598f9b..b7ed37f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A11_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,23 +73,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A11_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A11_t02.dart
index bd9d3b3..bbe12e4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A11_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A11_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,23 +73,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A11_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A11_t03.dart
index 8ce2773..e168c2a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A11_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A11_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,23 +73,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A12_t01.dart
index 7843522..4f28e8b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A12_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A12_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A12_t02.dart
index e102dac..5e70bd3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A12_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A12_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A12_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A12_t03.dart
index d7cdb2a..f479da4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A12_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A12_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A13_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A13_t01.dart
index 340dff9..55c8cd6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A13_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A13_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A13_t02.dart
index bae6903..57eac9d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A13_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A13_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A13_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A13_t03.dart
index d6d36eb..d8b595a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A13_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A13_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A14_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A14_t01.dart
index 45863cf..a6cfa5c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A14_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A14_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A14_t02.dart
index 816f456..5910353 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A14_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A14_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A14_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A14_t03.dart
index 898c45e..a129739 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A14_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A14_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A21_t01.dart
index 75ac152..660ab7e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A21_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -76,22 +76,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A21_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A21_t02.dart
index a6f4147..395d0dd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A21_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A21_t02.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -76,22 +76,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A21_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A21_t03.dart
index 1d28a92..e3bc11d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A21_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A21_t03.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -76,22 +76,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A22_t01.dart
index 0e3cac4..91706e7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A22_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A22_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A22_t02.dart
index 1f0d563..acde358 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A22_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A22_t02.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A22_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A22_t03.dart
index 437a2f4..85c47d4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A22_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A22_t03.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A23_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A23_t01.dart
index 466c167..a10bb38 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A23_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A23_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A23_t02.dart
index cb2aadc..6b11315 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A23_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A23_t02.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A23_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A23_t03.dart
index 8a52890..5a6ddfc 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A23_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A23_t03.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A24_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A24_t01.dart
index 381f230..cc2b79c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A24_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A24_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,21 +78,24 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A24_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A24_t02.dart
index 57122e3..176ccc6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A24_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A24_t02.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,21 +78,24 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A24_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A24_t03.dart
index 87d113b..c311a8b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A24_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A24_t03.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,21 +78,24 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A31_t01.dart
index d591e9b..331c5bf 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A31_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A31_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A31_t02.dart
index ce7711a..82d07c5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A31_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A31_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A31_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A31_t03.dart
index c3a523c..8ee9f22 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A31_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A31_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A32_t01.dart
index 80c0da0..7ca201a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A32_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,24 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A32_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A32_t02.dart
index f88fe9a..b8f5a99 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A32_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A32_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,24 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A32_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A32_t03.dart
index 68b22d9..a533673 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A32_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A32_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,24 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A33_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A33_t01.dart
index 48ba1ac..689dea8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A33_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A33_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A33_t02.dart
index 702f5a7..87be9c9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A33_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A33_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A33_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A33_t03.dart
index 41c716e..e6b6bc1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A33_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A33_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A34_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A34_t01.dart
index 1376a81..2d14910 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A34_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A34_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A34_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A34_t02.dart
index 4be4f84..06e214a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A34_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A34_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A34_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A34_t03.dart
index 6e5aa10..05bfad6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A34_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A34_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A41_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A41_t01.dart
index 739cbb6..a1bcb9d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A41_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A41_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A41_t02.dart
index abfa805..6384628 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A41_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A41_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A41_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A41_t03.dart
index 2eca838..22d3d19 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A41_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A41_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A42_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A42_t01.dart
index cf2c462..2499c64 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A42_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A42_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A42_t02.dart
index 9eec908..4151a1e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A42_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A42_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A42_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A42_t03.dart
index 0df4e31..27a66f0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A42_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A42_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A43_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A43_t01.dart
index 23e01a2..f9432b5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A43_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A43_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A43_t02.dart
index d732cbd..d42200c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A43_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A43_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A43_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A43_t03.dart
index d09b005..8a5b0ba 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A43_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A43_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A44_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A44_t01.dart
index 7c75b21..8f56ec5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A44_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A44_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A44_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A44_t02.dart
index 3756442..0413047 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A44_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A44_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A44_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A44_t03.dart
index 5ba553b..7bc3e45 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A44_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_arguments_binding_A44_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A01_t01.dart
index 2aa0534..a964e83 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A01_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
@@ -103,14 +106,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A01_t02.dart
index 50af376..82e8db9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A01_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,26 +46,27 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -90,12 +91,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A01_t03.dart
index b826fd4..bb513f7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A01_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,19 +46,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -72,6 +75,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -91,7 +97,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>();
+  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A02_t01.dart
index a8a94a9..2629742 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A02_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
@@ -104,14 +107,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A02_t02.dart
index 7ac673d..af1eb05 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A02_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,26 +47,27 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -91,12 +92,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A02_t03.dart
index ca0fa29..547313a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A02_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -73,6 +76,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -92,7 +98,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>();
+  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A03_t01.dart
index 3480865..6e13726 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A03_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
@@ -104,14 +107,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A03_t02.dart
index 5024531..b783aa8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A03_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,26 +47,27 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -91,12 +92,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A03_t03.dart
index 5ca1d7c..50b1428 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A03_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -73,6 +76,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -92,7 +98,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>();
+  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A04_t01.dart
index 4f1c260..06c6557 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A04_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,15 +48,18 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
@@ -105,14 +108,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A04_t02.dart
index 28d5889..caf95b6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A04_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,26 +48,27 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -92,12 +93,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A04_t03.dart
index 1693114..0646d10 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A04_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,19 +48,22 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -74,6 +77,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -93,7 +99,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>();
+  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A11_t01.dart
index 75af7b2..941aa22 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A11_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,23 +73,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
@@ -139,14 +139,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A11_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A11_t02.dart
index e68c892..9941c1b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A11_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A11_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,35 +73,33 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -126,12 +124,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A11_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A11_t03.dart
index 8208d9b..a794892 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A11_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A11_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,28 +73,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -108,6 +108,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A12_t01.dart
index 29cdef1..7b9e57e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A12_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
@@ -141,14 +141,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A12_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A12_t02.dart
index 475dcb8..c9f4c67 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A12_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A12_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,35 +75,33 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -128,12 +126,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A12_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A12_t03.dart
index 24ce6c5..1b3c990 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A12_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A12_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,28 +75,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -110,6 +110,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A13_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A13_t01.dart
index f79fcb8..7a0f2c4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A13_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
@@ -141,14 +141,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A13_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A13_t02.dart
index 4857227..46d86ef 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A13_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A13_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,35 +75,33 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -128,12 +126,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A13_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A13_t03.dart
index 028e5e3..6657421 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A13_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A13_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,28 +75,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -110,6 +110,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A14_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A14_t01.dart
index 52153bd..872c51e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A14_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
@@ -141,14 +141,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A14_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A14_t02.dart
index 85374fa..ab72086 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A14_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A14_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,35 +75,33 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -128,12 +126,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A14_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A14_t03.dart
index f1409a6..7ee85f0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A14_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A14_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,28 +75,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -110,6 +110,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A21_t01.dart
index c86eced..537514a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A21_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -76,22 +76,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
@@ -141,14 +144,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A21_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A21_t02.dart
index 4880abc..e913006 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A21_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A21_t02.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -76,34 +76,35 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -128,12 +129,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A21_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A21_t03.dart
index f27f600..199eabf 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A21_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A21_t03.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -76,27 +76,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -110,6 +113,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A22_t01.dart
index e45951c..fccc71f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A22_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
@@ -144,14 +147,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A22_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A22_t02.dart
index 0daeb7f..92053f4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A22_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A22_t02.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,35 +78,36 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -131,12 +132,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A22_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A22_t03.dart
index de08764..1a95e71 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A22_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A22_t03.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,28 +78,31 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -113,6 +116,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A23_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A23_t01.dart
index f4d7dc1..200cf89 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A23_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
@@ -144,14 +146,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A23_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A23_t02.dart
index 4ada2f6..761e129 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A23_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A23_t02.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,35 +78,35 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -131,12 +131,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A23_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A23_t03.dart
index c5b81a8..150bc9a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A23_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A23_t03.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,28 +78,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -113,6 +115,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A24_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A24_t01.dart
index 4d6b952..9e9a6fc 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A24_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A24_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,21 +78,24 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
@@ -142,14 +145,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A24_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A24_t02.dart
index e769a9e..5b7f928 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A24_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A24_t02.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,33 +78,34 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -129,12 +130,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A24_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A24_t03.dart
index 59f7713..1a46495 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A24_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A24_t03.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,26 +78,29 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -111,6 +114,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A31_t01.dart
index 69aacd7..e5a8b6b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A31_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
@@ -140,14 +141,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A31_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A31_t02.dart
index d7cbbd0..4ebde83 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A31_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A31_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,34 +75,33 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -127,12 +126,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A31_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A31_t03.dart
index a646c0f..4c483d9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A31_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A31_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,27 +75,28 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -109,6 +110,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A32_t01.dart
index bd5f7bb..3046efa 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A32_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,24 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
@@ -140,14 +141,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A32_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A32_t02.dart
index 326f90b..de22b87 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A32_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A32_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,35 +74,34 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -127,12 +126,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A32_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A32_t03.dart
index 8fb77eb..da3ceae 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A32_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A32_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,28 +74,29 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -109,6 +110,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A33_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A33_t01.dart
index f6fb09d..3fe452c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A33_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
@@ -140,14 +141,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A33_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A33_t02.dart
index 14df898..2cf45b1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A33_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A33_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,34 +75,33 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -127,12 +126,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A33_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A33_t03.dart
index ba83f3d..3946304 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A33_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A33_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,27 +75,28 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -109,6 +110,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A34_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A34_t01.dart
index 5169af0..c8d7f14 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A34_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A34_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
@@ -140,14 +141,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A34_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A34_t02.dart
index 2eb3b97..1229111 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A34_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A34_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,34 +75,33 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -127,12 +126,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A34_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A34_t03.dart
index 9b02981..15c5239 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A34_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A34_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,27 +75,28 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -109,6 +110,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A41_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A41_t01.dart
index e45ce7a..99dbc19 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A41_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
@@ -122,14 +123,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A41_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A41_t02.dart
index 2275691..793b813 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A41_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A41_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,34 +57,33 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -109,12 +108,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A41_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A41_t03.dart
index 8ce8cd1..ecbdbd1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A41_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A41_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,27 +57,28 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -91,6 +92,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A42_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A42_t01.dart
index 1c520dd..e9a7729 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A42_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
@@ -122,14 +123,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A42_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A42_t02.dart
index a0c4ff4..f3f4260 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A42_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A42_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,34 +57,33 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -109,12 +108,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A42_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A42_t03.dart
index e075300..05fb897 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A42_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A42_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,27 +57,28 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -91,6 +92,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A43_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A43_t01.dart
index 10994f3..70b3b3a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A43_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
@@ -122,14 +123,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A43_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A43_t02.dart
index a245818..fa55d84 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A43_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A43_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,34 +57,33 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -109,12 +108,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A43_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A43_t03.dart
index d928b64..47fa276 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A43_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A43_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,27 +57,28 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -91,6 +92,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A44_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A44_t01.dart
index 65e4963..388ee19 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A44_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A44_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
@@ -122,14 +123,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A44_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A44_t02.dart
index 33b24db..e30eda1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A44_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A44_t02.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,34 +57,33 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -109,12 +108,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A44_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A44_t03.dart
index 5a17383..296935d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A44_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_class_member_A44_t03.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,27 +57,28 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -91,6 +92,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A01_t01.dart
index 838fb4d..404fe22 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A01_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A01_t02.dart
index a11216b..0e9f9f9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A01_t02.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A01_t03.dart
index ef3cad1..47fe19a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A01_t03.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,21 +46,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -156,8 +157,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A02_t01.dart
index 32582e4..8d1ff36 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A02_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,14 +47,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A02_t02.dart
index 07b67b4..5d7d2bd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A02_t02.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,14 +47,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A02_t03.dart
index fdedc95..a8f136f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A02_t03.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,21 +47,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -157,8 +158,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A03_t01.dart
index 4dd7582..3397f30 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A03_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A03_t02.dart
index 251c5ae..2cb24e9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A03_t02.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A03_t03.dart
index 6d23727..2f27031 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A03_t03.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,21 +46,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -156,8 +157,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A04_t01.dart
index 47ef844..39055e7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A04_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A04_t02.dart
index cc620d1..d44fa55 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A04_t02.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A04_t03.dart
index a20f77b..1e4fd89 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A04_t03.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,21 +46,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -156,8 +157,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A05_t01.dart
index 0afaf92..cd23e67 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A05_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A05_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A05_t02.dart
index ade2842..1ce4b68 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A05_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A05_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A05_t03.dart
index 13752c7..07fe014 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A05_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,30 +68,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -187,8 +187,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A06_t01.dart
index 1064128..d9b905b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A06_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A06_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A06_t02.dart
index 2073137..54c056f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A06_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A06_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A06_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A06_t03.dart
index c4502b3..809051b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A06_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A06_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,30 +68,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -187,8 +187,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A07_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A07_t01.dart
index b280c08..9fcbe27 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A07_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A07_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A07_t02.dart
index 730b96c..fbe3f6e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A07_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A07_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A07_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A07_t03.dart
index ddf578d..db50572 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A07_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A07_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,30 +68,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -187,8 +187,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A08_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A08_t01.dart
index 5451ae7..d7ffb60 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A08_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -67,22 +67,22 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A08_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A08_t02.dart
index 42cc4d7..7fb7b12 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A08_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A08_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -67,22 +67,22 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A08_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A08_t03.dart
index a94abc4..8e1a1c1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A08_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A08_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -67,29 +67,29 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -185,8 +185,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A11_t01.dart
index c794c07..8be94b8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A11_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,14 +49,15 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A11_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A11_t02.dart
index 06aea4c..2c8b4cc 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A11_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A11_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,14 +49,15 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A11_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A11_t03.dart
index 717f8e7..384a3f6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A11_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A11_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,21 +49,22 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -159,8 +160,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A12_t01.dart
index da2945b..5482f45 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A12_t01.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,23 +69,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A12_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A12_t02.dart
index 4a42ae3..ccae8ea 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A12_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A12_t02.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,23 +69,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A12_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A12_t03.dart
index bcd0feb..5d219f8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A12_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A12_t03.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,30 +69,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -188,8 +188,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A21_t01.dart
index f900d4b..d6337ca 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A21_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,14 +49,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A21_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A21_t02.dart
index eb4d5fa..1da7575 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A21_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A21_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,14 +49,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A21_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A21_t03.dart
index be46ce4..4d32f2b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A21_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A21_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,21 +49,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -159,8 +160,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A22_t01.dart
index 2cb89b4..4d27d03 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A22_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A22_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A22_t02.dart
index c8f24e1..d974825 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A22_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A22_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A22_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A22_t03.dart
index f232240..392663c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A22_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A22_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,30 +68,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -187,8 +187,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A31_t01.dart
index 13f4840..a3f1d29 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A31_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -65,16 +65,17 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A31_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A31_t02.dart
index 5e0dd45..7555823 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A31_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A31_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -65,16 +65,17 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A31_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A31_t03.dart
index 5afda09..c696542 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A31_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A31_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -65,23 +65,24 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -177,8 +178,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A32_t01.dart
index 9eb002a..df5f2a9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A32_t01.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,23 +69,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A32_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A32_t02.dart
index ef7916a..1657f18 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A32_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A32_t02.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,23 +69,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A32_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A32_t03.dart
index fda8d23..cc89a01 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A32_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_arguments_binding_fail_A32_t03.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,30 +69,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -188,8 +188,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A01_t01.dart
index 114a685..b1b9305 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A01_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,19 +46,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -76,7 +77,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -98,7 +99,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -125,14 +126,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -147,14 +145,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -190,30 +185,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -239,30 +234,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A01_t02.dart
index 750c31a..ac3352a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A01_t02.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,19 +46,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -95,12 +96,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -116,8 +115,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -132,16 +129,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -151,16 +148,16 @@
   Expect.throws(() {new ClassMember2_t02<T1>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<T1>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test1();
+    new ClassMember2_t02<T1>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test2();
+    new ClassMember2_t02<T1>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A01_t03.dart
index b68008f..10ea4aa 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A01_t03.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,19 +46,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -77,11 +78,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -109,16 +114,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<T1>().m = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test1();
+    new ClassMember2_t03<T1>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test2();
+    new ClassMember2_t03<T1>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A02_t01.dart
index b9e4579..17c9f92 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A02_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -77,7 +78,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -99,7 +100,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -126,14 +127,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -148,14 +146,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -191,30 +186,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -240,30 +235,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A02_t02.dart
index 0d92f91..16e9845 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A02_t02.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -96,12 +97,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -117,8 +116,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -133,16 +130,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -152,16 +149,16 @@
   Expect.throws(() {new ClassMember2_t02<T1>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<T1>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test1();
+    new ClassMember2_t02<T1>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test2();
+    new ClassMember2_t02<T1>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A02_t03.dart
index 605ac03..e1accca 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A02_t03.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -78,11 +79,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -110,16 +115,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<T1>().m = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test1();
+    new ClassMember2_t03<T1>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test2();
+    new ClassMember2_t03<T1>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A03_t01.dart
index 671776d..9fb8704 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A03_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,19 +46,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -76,7 +77,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -98,7 +99,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -125,14 +126,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -147,14 +145,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -190,30 +185,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -239,30 +234,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A03_t02.dart
index dbe9396..115ef7f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A03_t02.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,19 +46,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -95,12 +96,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -116,8 +115,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -132,16 +129,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -151,16 +148,16 @@
   Expect.throws(() {new ClassMember2_t02<T1>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<T1>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test1();
+    new ClassMember2_t02<T1>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test2();
+    new ClassMember2_t02<T1>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A03_t03.dart
index 89332e4..b83a694 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A03_t03.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,19 +46,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -77,11 +78,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -109,16 +114,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<T1>().m = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test1();
+    new ClassMember2_t03<T1>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test2();
+    new ClassMember2_t03<T1>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A04_t01.dart
index 11ab45e..7d54c7e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A04_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,19 +46,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -76,7 +77,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -98,7 +99,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -125,14 +126,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -147,14 +145,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -190,30 +185,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -239,30 +234,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A04_t02.dart
index 6756f69..55498e9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A04_t02.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,19 +46,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -95,12 +96,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -116,8 +115,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -132,16 +129,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -151,16 +148,16 @@
   Expect.throws(() {new ClassMember2_t02<T1>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<T1>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test1();
+    new ClassMember2_t02<T1>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test2();
+    new ClassMember2_t02<T1>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A04_t03.dart
index 8ac6a17..bd04554 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A04_t03.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,19 +46,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -77,11 +78,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -109,16 +114,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<T1>().m = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test1();
+    new ClassMember2_t03<T1>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test2();
+    new ClassMember2_t03<T1>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A05_t01.dart
index 3ea8612..2b0caee 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A05_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,28 +68,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -107,7 +107,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -129,7 +129,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -156,14 +156,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -178,14 +175,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -221,30 +215,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A05_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A05_t02.dart
index 38d7836..6951a32 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A05_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,28 +68,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -126,12 +126,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -147,8 +145,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -163,16 +159,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A05_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A05_t03.dart
index 7535bb7..07197ad 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A05_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,28 +68,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -108,11 +108,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A06_t01.dart
index 0f9d305..03f2549 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A06_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,28 +68,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -107,7 +107,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -129,7 +129,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -156,14 +156,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -178,14 +175,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -221,30 +215,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A06_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A06_t02.dart
index f0a5e3e..6326f6b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A06_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A06_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,28 +68,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -126,12 +126,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -147,8 +145,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -163,16 +159,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A06_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A06_t03.dart
index 89bb2c9..dceea07 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A06_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A06_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,28 +68,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -108,11 +108,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A07_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A07_t01.dart
index 9a4e1b6..952eb1c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A07_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,28 +68,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -107,7 +107,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -129,7 +129,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -156,14 +156,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -178,14 +175,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -221,30 +215,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A07_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A07_t02.dart
index 714fb11..293dffb 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A07_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A07_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,28 +68,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -126,12 +126,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -147,8 +145,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -163,16 +159,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A07_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A07_t03.dart
index 2579037..5c1e9d4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A07_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A07_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,28 +68,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -108,11 +108,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A08_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A08_t01.dart
index b26f8c1..0767131 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A08_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -67,27 +67,27 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -105,7 +105,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -127,7 +127,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -154,14 +154,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -176,14 +173,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -219,30 +213,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A08_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A08_t02.dart
index 0ed4b4f..b25a9ee 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A08_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A08_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -67,27 +67,27 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -124,12 +124,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -145,8 +143,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -161,16 +157,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A08_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A08_t03.dart
index 17d9ba3..0e5280b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A08_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A08_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -67,27 +67,27 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -106,11 +106,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A11_t01.dart
index 5184870..c5b98c6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A11_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,19 +49,20 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -79,7 +80,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -101,7 +102,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -128,14 +129,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -150,14 +148,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -193,30 +188,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -242,30 +237,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A11_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A11_t02.dart
index f98de26..bed9854 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A11_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A11_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,19 +49,20 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -98,12 +99,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -119,8 +118,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -135,16 +132,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -154,16 +151,16 @@
   Expect.throws(() {new ClassMember2_t02<T1>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<T1>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test1();
+    new ClassMember2_t02<T1>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test2();
+    new ClassMember2_t02<T1>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A11_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A11_t03.dart
index 473e054..79f7a26 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A11_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A11_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,19 +49,20 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -80,11 +81,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -112,16 +117,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<T1>().m = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test1();
+    new ClassMember2_t03<T1>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test2();
+    new ClassMember2_t03<T1>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A12_t01.dart
index b12f48e..8075a63 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A12_t01.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -108,7 +108,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -130,7 +130,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -157,14 +157,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -179,14 +176,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -222,30 +216,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A12_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A12_t02.dart
index cd2d5d0..b0c47bc 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A12_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A12_t02.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -127,12 +127,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -148,8 +146,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -164,16 +160,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A12_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A12_t03.dart
index acb20a3..101294e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A12_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A12_t03.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -109,11 +109,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A21_t01.dart
index 51b17e7..1a28374 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A21_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,19 +49,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -79,7 +80,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -101,7 +102,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -128,14 +129,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -150,14 +148,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -193,30 +188,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -242,30 +237,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A21_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A21_t02.dart
index 7e72d1a..238b220 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A21_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A21_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,19 +49,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -98,12 +99,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -119,8 +118,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -135,16 +132,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -154,16 +151,16 @@
   Expect.throws(() {new ClassMember2_t02<T1>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<T1>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test1();
+    new ClassMember2_t02<T1>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test2();
+    new ClassMember2_t02<T1>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A21_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A21_t03.dart
index 175b42c..c706dd0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A21_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A21_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,19 +49,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -80,11 +81,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -112,16 +117,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<T1>().m = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test1();
+    new ClassMember2_t03<T1>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test2();
+    new ClassMember2_t03<T1>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A22_t01.dart
index 8a95e8f..3d8fe89 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A22_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,28 +68,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -107,7 +107,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -129,7 +129,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -156,14 +156,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -178,14 +175,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -221,30 +215,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A22_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A22_t02.dart
index 5d21179..67986a0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A22_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A22_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,28 +68,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -126,12 +126,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -147,8 +145,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -163,16 +159,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A22_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A22_t03.dart
index 8fba29f..f89e96a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A22_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A22_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,28 +68,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -108,11 +108,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A31_t01.dart
index d190111..c0c8b5a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A31_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -65,21 +65,22 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -97,7 +98,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -119,7 +120,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -146,14 +147,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -168,14 +166,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -211,30 +206,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A31_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A31_t02.dart
index 4571010..0f6434a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A31_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A31_t02.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -65,21 +65,22 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -116,12 +117,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -137,8 +136,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -153,16 +150,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A31_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A31_t03.dart
index c30412f..a4df025 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A31_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A31_t03.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -65,21 +65,22 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -98,11 +99,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A32_t01.dart
index 297a6f4..3ad6d3e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A32_t01.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -108,7 +108,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -130,7 +130,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -157,14 +157,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -179,14 +176,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -222,30 +216,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A32_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A32_t02.dart
index 0af741f..487276d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A32_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A32_t02.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -127,12 +127,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -148,8 +146,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -164,16 +160,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A32_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A32_t03.dart
index 9da5e21..bad20d2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A32_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_class_member_fail_A32_t03.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -109,11 +109,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A01_t01.dart
index 358da0f..f74cf5e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A01_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A02_t01.dart
index 16363f5..b3feda4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A02_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,14 +47,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A03_t01.dart
index a90a4ca..de7ebd7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A03_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A04_t01.dart
index e7ab6cc..d0c7ee5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A04_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A05_t01.dart
index 38a668b..32db321 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A05_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A06_t01.dart
index 3395fff..bcd9d64 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A06_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A07_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A07_t01.dart
index 73364d4..fcb2b80 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A07_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A08_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A08_t01.dart
index b5b1b2b..21447a3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A08_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -67,22 +67,22 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A11_t01.dart
index a076f85..6c0e15d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A11_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,14 +49,15 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A12_t01.dart
index d78eb97..5a5d8dd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A12_t01.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,23 +69,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A21_t01.dart
index a196420..3218b1a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A21_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,14 +49,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A22_t01.dart
index c389062..1c71515 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A22_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A31_t01.dart
index 7c60b09..d21d564 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A31_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -65,16 +65,17 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A32_t01.dart
index 099334e..deb0d14 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_global_variable_fail_A32_t01.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,23 +69,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A01_t01.dart
index 8e4540f..f8d1100 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A01_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,46 +46,42 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A02_t01.dart
index 1a14882..dc1aa13 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A02_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,46 +47,42 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A03_t01.dart
index 5308d33..2270a1b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A03_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,46 +46,42 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A04_t01.dart
index 97bd309..1627784 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A04_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,46 +46,42 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A05_t01.dart
index 1844450..bf83b22 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A05_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,55 +68,50 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A06_t01.dart
index 48d7e73..3df25cd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A06_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,55 +68,50 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A07_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A07_t01.dart
index 41d00f7..bfb62e4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A07_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,55 +68,50 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A08_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A08_t01.dart
index cd9bb3e..98a2de2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A08_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -67,54 +67,49 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A11_t01.dart
index c356f6c..c87114f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A11_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,46 +49,42 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A12_t01.dart
index b3d6dc3..e113029 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A12_t01.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,55 +69,50 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A21_t01.dart
index 7158484..bd2d454 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A21_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,46 +49,42 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A22_t01.dart
index 10edccf..4b5baa3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A22_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,55 +68,50 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A31_t01.dart
index 002286e..321694c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A31_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -65,48 +65,44 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A32_t01.dart
index e21894e..5df9e38 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_local_variable_fail_A32_t01.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,55 +69,50 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A01_t01.dart
index fe1a39f..7ac25a0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A01_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A02_t01.dart
index 8cbb9b7..177c6d9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A02_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,14 +47,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A03_t01.dart
index 3070b5c..601ef13 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A03_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A04_t01.dart
index 2d5068e..5298d28 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A04_t01.dart
@@ -34,7 +34,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A05_t01.dart
index a6d303d..924215c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A05_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A06_t01.dart
index a780e71..9454b91 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A06_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A07_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A07_t01.dart
index c674025..d85e73a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A07_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A08_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A08_t01.dart
index 18f3cf1..0a6bc4b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A08_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -67,22 +67,22 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A11_t01.dart
index 046d6cb..9bade0f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A11_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,14 +49,15 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A12_t01.dart
index ece0e53..c4fba13 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A12_t01.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,23 +69,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A21_t01.dart
index 4fc997e..1edcb1e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A21_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,14 +49,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A22_t01.dart
index 03ec66b..c619188 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A22_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A31_t01.dart
index 600a726..9990012 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A31_t01.dart
@@ -37,7 +37,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -65,16 +65,17 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A32_t01.dart
index 91f2923..03c5d23 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_fail_return_value_fail_A32_t01.dart
@@ -38,7 +38,7 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,23 +69,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A01_t01.dart
index 031f021..0a86290 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A01_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A02_t01.dart
index 80c7a5a..381775b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A02_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A03_t01.dart
index 422f8a9..840f71a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A03_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A04_t01.dart
index 3cc4f37..e184021 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A04_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,15 +48,18 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A11_t01.dart
index 5166f8f..6cef652 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A11_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,23 +73,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A12_t01.dart
index d1deda6..e970f75 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A12_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A13_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A13_t01.dart
index d53a1d9..60bdf82 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A13_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A14_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A14_t01.dart
index ce9bf71..946b893 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A14_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A21_t01.dart
index ea97581..04d4b72 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A21_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -76,22 +76,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A22_t01.dart
index e920a7c..54ee5fa1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A22_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A23_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A23_t01.dart
index d138611..6f08a0b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A23_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A24_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A24_t01.dart
index a734f14..92b3814 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A24_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A24_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,21 +78,24 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A31_t01.dart
index 848c918..0e45d13 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A31_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A32_t01.dart
index d65f997..098435b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A32_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,24 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A33_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A33_t01.dart
index 554cf0b..148ad44 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A33_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A34_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A34_t01.dart
index 0059141..b4c9be5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A34_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A34_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A41_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A41_t01.dart
index 96bf545..ef0d5c3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A41_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A42_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A42_t01.dart
index a2d8960..66725f3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A42_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A43_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A43_t01.dart
index 1bd1fd7..1cb0b67 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A43_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A44_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A44_t01.dart
index 66c0958..8900934 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A44_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_global_variable_A44_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A01_t01.dart
index 24a9e49..6d94658 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A01_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A02_t01.dart
index b133524..eca56a1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A02_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A03_t01.dart
index 368b1dd..2a86699 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A03_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A04_t01.dart
index 227fb9c..3db387f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A04_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,15 +48,18 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A11_t01.dart
index 68d0a3d..dcb74e2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A11_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,23 +73,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A12_t01.dart
index cd0150b..90efeb3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A12_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A13_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A13_t01.dart
index b6975ae..f8a564d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A13_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A14_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A14_t01.dart
index 2130192..49a7655 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A14_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A21_t01.dart
index 0fe6666..87ac22c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A21_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -76,22 +76,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A22_t01.dart
index 4b4e905..3bf0ebb 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A22_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A23_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A23_t01.dart
index c698bc4..55b9c74 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A23_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A24_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A24_t01.dart
index adb8ce7..f89d95c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A24_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A24_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,21 +78,24 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A31_t01.dart
index 09489be..c41a16b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A31_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A32_t01.dart
index b4eb3a7..991e1ad 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A32_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,24 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A33_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A33_t01.dart
index f71195c..170f06a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A33_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A34_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A34_t01.dart
index 6d4ccff..a42d989 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A34_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A34_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A41_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A41_t01.dart
index 68e9bed..6649b5e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A41_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A42_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A42_t01.dart
index ad8d413..cf6d279 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A42_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A43_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A43_t01.dart
index 5ab3113..18c941f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A43_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A44_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A44_t01.dart
index cf865c0..a089464 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A44_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_local_variable_A44_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A01_t01.dart
index 2943870..5994293 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A01_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A02_t01.dart
index a3980e2..711813b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A02_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A03_t01.dart
index 57dbd77..7e2a550 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A03_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A04_t01.dart
index fa22dd8..9401082 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A04_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,15 +48,18 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A11_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A11_t01.dart
index 6ccf902..4e46b11 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A11_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,23 +73,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A12_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A12_t01.dart
index 1d99c3d..5c00cf0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A12_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A13_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A13_t01.dart
index 72f664d..20b8700 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A13_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A14_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A14_t01.dart
index 759909f..c1d8da2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A14_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A21_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A21_t01.dart
index da46824..12d6776 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A21_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -76,22 +76,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A22_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A22_t01.dart
index 473a9aa..8c166f2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A22_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A23_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A23_t01.dart
index bc88269..8fc6d69 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A23_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A24_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A24_t01.dart
index e1d3cd4..710b48e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A24_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A24_t01.dart
@@ -35,7 +35,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,21 +78,24 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A31_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A31_t01.dart
index 68fa654..0704707 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A31_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A32_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A32_t01.dart
index e5fe348..7a5a780 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A32_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,24 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A33_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A33_t01.dart
index 84996cc..6635e46 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A33_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A34_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A34_t01.dart
index 0511b1a..6c71cef 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A34_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A34_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A41_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A41_t01.dart
index 5e6ad32..964bbf4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A41_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A42_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A42_t01.dart
index 1fa103e..25a1edb 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A42_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A43_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A43_t01.dart
index 473bba8..b90a69e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A43_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A44_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A44_t01.dart
index c6ca8eb..dfee9ff 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A44_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/positional_function_types_return_value_A44_t01.dart
@@ -34,7 +34,7 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -57,22 +57,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A01_t01.dart
index af1e557..706f2f8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A01_t01.dart
@@ -25,12 +25,16 @@
 
 
 import '../../utils/common.dart';
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 namedArgumentsFunc1(T t1, {T t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A01_t02.dart
index 2b59850..803b6b5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A01_t02.dart
@@ -25,12 +25,16 @@
 
 
 import '../../utils/common.dart';
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A01_t03.dart
index a06b510..fb529d6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A01_t03.dart
@@ -25,12 +25,16 @@
 
 
 import '../../utils/common.dart';
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A02_t01.dart
index 73f59de..8833c2e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A02_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 namedArgumentsFunc1(dynamic t1, {dynamic t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A02_t02.dart
index 2991166..2b17255 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A02_t02.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A02_t03.dart
index 4fcb7d9..b57ced4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A02_t03.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A03_t01.dart
index 164f318..8850c33 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A03_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A03_t02.dart
index c23e6e5..9deddf7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A03_t02.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A03_t03.dart
index c3beb88..da587b3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A03_t03.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A04_t01.dart
index 7707bc9..6eca7c9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A04_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 namedArgumentsFunc1(Null t1, {Null t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A04_t02.dart
index 2747fd1..8f96d82 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A04_t02.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A04_t03.dart
index e4f5289..0c16179 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_arguments_binding_A04_t03.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A01_t01.dart
index 72f1706..2f04007 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A01_t01.dart
@@ -25,12 +25,16 @@
 
 
 import '../../utils/common.dart';
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
@@ -80,14 +84,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A01_t02.dart
index 2342ca7..03aa7db 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A01_t02.dart
@@ -25,24 +25,26 @@
 
 
 import '../../utils/common.dart';
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
 class ClassMemberSuper1_t02 {
   T m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -67,12 +69,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A01_t03.dart
index 6edfea2..80110cd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A01_t03.dart
@@ -25,17 +25,21 @@
 
 
 import '../../utils/common.dart';
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  T m;
+  T m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -49,6 +53,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -68,7 +75,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<T> c2 = new ClassMember2_t03<T>();
+  ClassMember2_t03<T> c2 = new ClassMember2_t03<T>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A02_t01.dart
index f7df320..85ff160 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A02_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
@@ -78,14 +80,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A02_t02.dart
index 213a2ff..05726b5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A02_t02.dart
@@ -25,22 +25,22 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
 class ClassMemberSuper1_t02 {
   dynamic m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -65,12 +65,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A02_t03.dart
index 3e9c519..7b6ac86 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A02_t03.dart
@@ -25,15 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
 class ClassMemberMixin1_t03 {
-  dynamic m;
+  dynamic m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -47,6 +49,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -66,7 +71,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<dynamic> c2 = new ClassMember2_t03<dynamic>();
+  ClassMember2_t03<dynamic> c2 = new ClassMember2_t03<dynamic>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A03_t01.dart
index 3a421c3..af2a18d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A03_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
@@ -78,14 +80,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A03_t02.dart
index f82ba93..aa9ffb4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A03_t02.dart
@@ -25,22 +25,22 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t02 {
   Object m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -65,12 +65,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A03_t03.dart
index c433a40..78db4a1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A03_t03.dart
@@ -25,15 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -47,6 +49,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -66,7 +71,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Object> c2 = new ClassMember2_t03<Object>();
+  ClassMember2_t03<Object> c2 = new ClassMember2_t03<Object>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A04_t01.dart
index dd86070..3ca2a1b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A04_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
@@ -78,14 +80,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A04_t02.dart
index ed89233..c1e6ae1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A04_t02.dart
@@ -25,22 +25,22 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
 class ClassMemberSuper1_t02 {
   Null m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -65,12 +65,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A04_t03.dart
index 4401c3d..1cf1349 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_class_member_A04_t03.dart
@@ -25,15 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Null m;
+  Null m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -47,6 +49,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -66,7 +71,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Null> c2 = new ClassMember2_t03<Null>();
+  ClassMember2_t03<Null> c2 = new ClassMember2_t03<Null>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A01_t01.dart
index 69ac4d1..44c24a0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A01_t01.dart
@@ -25,12 +25,16 @@
 
 
 import '../../utils/common.dart';
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A02_t01.dart
index 7a10c3d..576c469 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A02_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A03_t01.dart
index 3844468..5d0c740 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A03_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A04_t01.dart
index 759d973..46fd6a7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_global_variable_A04_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A01_t01.dart
index d73db09..0c1deab 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A01_t01.dart
@@ -25,12 +25,16 @@
 
 
 import '../../utils/common.dart';
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A02_t01.dart
index 7d80036..30fa7b0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A02_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A03_t01.dart
index 1cf9c9f..203e776 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A03_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A04_t01.dart
index 2631e8d..2122181 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_local_variable_A04_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A01_t01.dart
index 52e28bd..c032eb1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A01_t01.dart
@@ -25,12 +25,16 @@
 
 
 import '../../utils/common.dart';
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A02_t01.dart
index d058a64..aa480a1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A02_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A03_t01.dart
index fb06d86..1ad8dec 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A03_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A04_t01.dart
index 6534120..7d916b6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/reflexivity_return_value_A04_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A01_t01.dart
index 4382717..6339c39 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A01_t01.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -44,6 +46,8 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A01_t02.dart
index b8029c3..bc8c199 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A01_t02.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -44,6 +46,8 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A01_t03.dart
index 875e79f..551d4b0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A01_t03.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -44,6 +46,8 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A02_t01.dart
index 48370f4..651f829 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A02_t01.dart
@@ -29,15 +29,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A02_t02.dart
index 6eca94f..c85d236 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A02_t02.dart
@@ -29,15 +29,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A02_t03.dart
index dcf44d5..1f53cc3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A02_t03.dart
@@ -29,15 +29,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A03_t01.dart
index 54e6a30..53b5da0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A03_t01.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,6 +48,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A03_t02.dart
index e56a325..64df080 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A03_t02.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,6 +48,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A03_t03.dart
index 5275fb5..e452393 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A03_t03.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,6 +48,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A04_t01.dart
index c5ac51f..ab56350 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A04_t01.dart
@@ -29,9 +29,12 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -40,6 +43,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A04_t02.dart
index 88e9763..a543bd5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A04_t02.dart
@@ -29,9 +29,12 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -40,6 +43,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A04_t03.dart
index aab9cf2..a30039d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_arguments_binding_A04_t03.dart
@@ -29,9 +29,12 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -40,6 +43,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A01_t01.dart
index e8fd7c9..58901b5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A01_t01.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -44,6 +46,8 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
@@ -93,14 +97,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A01_t02.dart
index c482414..c340e12 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A01_t02.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -44,18 +46,18 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t02 {
   FutureOr<S1> m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -80,12 +82,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A01_t03.dart
index b268fbc..f4de69d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A01_t03.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -44,11 +46,13 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -62,6 +66,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -81,7 +88,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<FutureOr<S1>> c2 = new ClassMember2_t03<FutureOr<S1>>();
+  ClassMember2_t03<FutureOr<S1>> c2 = new ClassMember2_t03<FutureOr<S1>>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A02_t01.dart
index 814dee0..78c9872 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A02_t01.dart
@@ -29,15 +29,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
@@ -87,14 +91,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A02_t02.dart
index 84c3621..c4fe7ee 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A02_t02.dart
@@ -29,27 +29,29 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t02 {
   FutureOr<S1> m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -74,12 +76,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A02_t03.dart
index 158e797..d12a362 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A02_t03.dart
@@ -29,20 +29,24 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -56,6 +60,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -75,7 +82,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<FutureOr<S1>> c2 = new ClassMember2_t03<FutureOr<S1>>();
+  ClassMember2_t03<FutureOr<S1>> c2 = new ClassMember2_t03<FutureOr<S1>>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A03_t01.dart
index c1ebf48..b0bf2ac 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A03_t01.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,6 +48,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
@@ -95,14 +99,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A03_t02.dart
index 8d692ae..94c078c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A03_t02.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,18 +48,18 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t02 {
   FutureOr<S1> m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -82,12 +84,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A03_t03.dart
index 496e798..fdc161b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A03_t03.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,11 +48,13 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -64,6 +68,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -83,7 +90,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<FutureOr<S1>> c2 = new ClassMember2_t03<FutureOr<S1>>();
+  ClassMember2_t03<FutureOr<S1>> c2 = new ClassMember2_t03<FutureOr<S1>>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A04_t01.dart
index 1cec671..b71dff9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A04_t01.dart
@@ -29,9 +29,12 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -40,6 +43,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
@@ -89,14 +94,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A04_t02.dart
index 425162d..914db49 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A04_t02.dart
@@ -29,9 +29,12 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -40,18 +43,18 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t02 {
   FutureOr<S1> m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -76,12 +79,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A04_t03.dart
index 69a1392..8ee3557 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_class_member_A04_t03.dart
@@ -29,9 +29,12 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -40,11 +43,13 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -58,6 +63,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -77,7 +85,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<FutureOr<S1>> c2 = new ClassMember2_t03<FutureOr<S1>>();
+  ClassMember2_t03<FutureOr<S1>> c2 = new ClassMember2_t03<FutureOr<S1>>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A01_t01.dart
index 92c05d6..234d93f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A01_t01.dart
@@ -31,15 +31,19 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A01_t02.dart
index f95fe26..a46abdf 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A01_t02.dart
@@ -31,15 +31,19 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A01_t03.dart
index 4d9ac96..920fc96 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A01_t03.dart
@@ -31,22 +31,26 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(FutureOr<S1> val) {}
-  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2]) {}
-  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2}) {}
+  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2 = t1Default}) {}
   FutureOr<S1> get superGetter => forgetType(t0Instance);
   void set superSetter(FutureOr<S1> val) {}
 }
@@ -142,8 +146,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A02_t01.dart
index 7e42630..8d598f2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A02_t01.dart
@@ -31,10 +31,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -42,6 +44,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A02_t02.dart
index b1f9402..a63d20a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A02_t02.dart
@@ -31,10 +31,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -42,6 +44,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A02_t03.dart
index a9d7abc..566462d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_arguments_binding_fail_A02_t03.dart
@@ -31,10 +31,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -42,13 +44,15 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(FutureOr<S1> val) {}
-  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2]) {}
-  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2}) {}
+  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2 = t1Default}) {}
   FutureOr<S1> get superGetter => forgetType(t0Instance);
   void set superSetter(FutureOr<S1> val) {}
 }
@@ -144,8 +148,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A01_t01.dart
index 279c600..7df99ba 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A01_t01.dart
@@ -31,20 +31,24 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberTestStatic {
-  static FutureOr<S1> s;
+  static FutureOr<S1> s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -62,7 +66,7 @@
 }
 
 class ClassMemberTestPublic {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -84,7 +88,7 @@
 }
 
 class ClassMemberTestPrivate {
-  FutureOr<S1> _m;
+  FutureOr<S1> _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -111,14 +115,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -133,14 +134,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -176,30 +174,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -225,30 +223,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<FutureOr<S1>>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<FutureOr<S1>>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<FutureOr<S1>>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<FutureOr<S1>>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<FutureOr<S1>>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<FutureOr<S1>>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<FutureOr<S1>>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<FutureOr<S1>>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<FutureOr<S1>>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<FutureOr<S1>>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<FutureOr<S1>>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<FutureOr<S1>>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A01_t02.dart
index 68dba39..ce77176 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A01_t02.dart
@@ -31,20 +31,24 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -81,12 +85,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -102,8 +104,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -118,16 +118,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -137,16 +137,16 @@
   Expect.throws(() {new ClassMember2_t02<FutureOr<S1>>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<FutureOr<S1>>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<FutureOr<S1>>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<FutureOr<S1>>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<FutureOr<S1>>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<FutureOr<S1>>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<FutureOr<S1>>.valid().test1();
+    new ClassMember2_t02<FutureOr<S1>>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<FutureOr<S1>>.valid().test2();
+    new ClassMember2_t02<FutureOr<S1>>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A01_t03.dart
index 0c9b6d0..c89a461 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A01_t03.dart
@@ -31,20 +31,24 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   void set superSetter(FutureOr<S1> val) {}
 }
@@ -63,11 +67,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -95,16 +103,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<FutureOr<S1>>().m = forgetType(t0Instance);
+    new ClassMember2_t03<FutureOr<S1>>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<FutureOr<S1>>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<FutureOr<S1>>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<FutureOr<S1>>().test1();
+    new ClassMember2_t03<FutureOr<S1>>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<FutureOr<S1>>().test2();
+    new ClassMember2_t03<FutureOr<S1>>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A02_t01.dart
index fd30c97..81d9f49 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A02_t01.dart
@@ -31,10 +31,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -42,11 +44,13 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberTestStatic {
-  static FutureOr<S1> s;
+  static FutureOr<S1> s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -64,7 +68,7 @@
 }
 
 class ClassMemberTestPublic {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -86,7 +90,7 @@
 }
 
 class ClassMemberTestPrivate {
-  FutureOr<S1> _m;
+  FutureOr<S1> _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -113,14 +117,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -135,14 +136,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -178,30 +176,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -227,30 +225,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<FutureOr<S1>>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<FutureOr<S1>>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<FutureOr<S1>>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<FutureOr<S1>>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<FutureOr<S1>>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<FutureOr<S1>>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<FutureOr<S1>>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<FutureOr<S1>>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<FutureOr<S1>>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<FutureOr<S1>>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<FutureOr<S1>>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<FutureOr<S1>>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A02_t02.dart
index 2d7fb34..b9d1d6e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A02_t02.dart
@@ -31,10 +31,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -42,11 +44,13 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -83,12 +87,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -104,8 +106,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -120,16 +120,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -139,16 +139,16 @@
   Expect.throws(() {new ClassMember2_t02<FutureOr<S1>>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<FutureOr<S1>>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<FutureOr<S1>>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<FutureOr<S1>>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<FutureOr<S1>>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<FutureOr<S1>>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<FutureOr<S1>>.valid().test1();
+    new ClassMember2_t02<FutureOr<S1>>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<FutureOr<S1>>.valid().test2();
+    new ClassMember2_t02<FutureOr<S1>>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A02_t03.dart
index 7489c58..52a88c9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_class_member_fail_A02_t03.dart
@@ -31,10 +31,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -42,11 +44,13 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   void set superSetter(FutureOr<S1> val) {}
 }
@@ -65,11 +69,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -97,16 +105,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<FutureOr<S1>>().m = forgetType(t0Instance);
+    new ClassMember2_t03<FutureOr<S1>>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<FutureOr<S1>>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<FutureOr<S1>>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<FutureOr<S1>>().test1();
+    new ClassMember2_t03<FutureOr<S1>>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<FutureOr<S1>>().test2();
+    new ClassMember2_t03<FutureOr<S1>>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_global_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_global_variable_fail_A01_t01.dart
index 4d6876d..af6e50b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_global_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_global_variable_fail_A01_t01.dart
@@ -31,15 +31,19 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_global_variable_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_global_variable_fail_A02_t01.dart
index e949b3b..12ecafa 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_global_variable_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_global_variable_fail_A02_t01.dart
@@ -31,10 +31,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -42,6 +44,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_local_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_local_variable_fail_A01_t01.dart
index 580f194..b686b5d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_local_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_local_variable_fail_A01_t01.dart
@@ -31,47 +31,46 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    FutureOr<S1> t1 = null;
-    t1 = forgetType(t0Instance);
+    FutureOr<S1> t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    FutureOr<S1> t1 = null;
-    t1 = forgetType(t0Instance);
+    FutureOr<S1> t1 = forgetType(t0Instance);
   }
 
   test() {
-    FutureOr<S1> t1 = null;
-    t1 = forgetType(t0Instance);
+    FutureOr<S1> t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    FutureOr<S1> t1 = null;
-    t1 = forgetType(t0Instance);
+    FutureOr<S1> t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    FutureOr<S1> t1 = null;
-    t1 = forgetType(t0Instance);
+    FutureOr<S1> t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_local_variable_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_local_variable_fail_A02_t01.dart
index 1900316..a9b2ae0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_local_variable_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_local_variable_fail_A02_t01.dart
@@ -31,10 +31,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -42,38 +44,35 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    FutureOr<S1> t1 = null;
-    t1 = forgetType(t0Instance);
+    FutureOr<S1> t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    FutureOr<S1> t1 = null;
-    t1 = forgetType(t0Instance);
+    FutureOr<S1> t1 = forgetType(t0Instance);
   }
 
   test() {
-    FutureOr<S1> t1 = null;
-    t1 = forgetType(t0Instance);
+    FutureOr<S1> t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    FutureOr<S1> t1 = null;
-    t1 = forgetType(t0Instance);
+    FutureOr<S1> t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    FutureOr<S1> t1 = null;
-    t1 = forgetType(t0Instance);
+    FutureOr<S1> t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_return_value_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_return_value_fail_A01_t01.dart
index 138d12f..e506218 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_return_value_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_return_value_fail_A01_t01.dart
@@ -31,15 +31,19 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_return_value_fail_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_return_value_fail_A02_t01.dart
index 063e0de..a02799e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_return_value_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_fail_return_value_fail_A02_t01.dart
@@ -31,10 +31,12 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -42,6 +44,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A01_t01.dart
index 1376236..04f8f03 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A01_t01.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -44,6 +46,8 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A02_t01.dart
index 2046abc..436f5eb 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A02_t01.dart
@@ -29,15 +29,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A03_t01.dart
index a7fd885..c086c87 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A03_t01.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,6 +48,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A04_t01.dart
index 2a439e3..6f5ec1a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_global_variable_A04_t01.dart
@@ -29,9 +29,12 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -40,6 +43,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A01_t01.dart
index 782ecef..a647eb2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A01_t01.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -44,6 +46,8 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A02_t01.dart
index f134f2d..378332a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A02_t01.dart
@@ -29,15 +29,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A03_t01.dart
index ef9a742..13c3312 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A03_t01.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,6 +48,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A04_t01.dart
index 86af9f5..31a683f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_local_variable_A04_t01.dart
@@ -29,9 +29,12 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -40,6 +43,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A01_t01.dart
index 19b1a81..6455017 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A01_t01.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -44,6 +46,8 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A02_t01.dart
index 779133b..9cabcfe 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A02_t01.dart
@@ -29,15 +29,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A03_t01.dart
index ac5bd23..d06f300 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A03_t01.dart
@@ -29,10 +29,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,6 +48,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A04_t01.dart
index 8078e1f..8b4ebb6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_FutureOr_return_value_A04_t01.dart
@@ -29,9 +29,12 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -40,6 +43,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A04_t01.dart
index 2edf4f8..3626134 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A04_t01.dart
@@ -41,6 +41,8 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A04_t02.dart
index cb431db..d1d2267 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A04_t02.dart
@@ -41,6 +41,8 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A04_t03.dart
index 10714ac..b670731 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A04_t03.dart
@@ -41,6 +41,8 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A05_t01.dart
index 00c86e6..eccc4ed 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A05_t01.dart
@@ -41,6 +41,8 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A05_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A05_t02.dart
index 8a6a60e..b98908e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A05_t02.dart
@@ -41,6 +41,8 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A05_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A05_t03.dart
index 847feaf..988e178 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_arguments_binding_A05_t03.dart
@@ -41,6 +41,8 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A01_t01.dart
index 8074ef6..0a4e91f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A01_t01.dart
@@ -92,14 +92,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A01_t02.dart
index 7ec7ada..7db456d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A01_t02.dart
@@ -49,12 +49,10 @@
 class ClassMemberSuper1_t02 {
   Object m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -79,12 +77,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A01_t03.dart
index 73e253b..db1206e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A01_t03.dart
@@ -47,7 +47,7 @@
 
 
 class ClassMemberMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -61,6 +61,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -83,7 +86,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Object> c2 = new ClassMember2_t03<Object>();
+  ClassMember2_t03<Object> c2 = new ClassMember2_t03<Object>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A04_t01.dart
index aabda8f..b51698f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A04_t01.dart
@@ -41,6 +41,8 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
@@ -90,14 +92,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A04_t02.dart
index c088cfe..508fb17 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A04_t02.dart
@@ -41,18 +41,18 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t02 {
   Object m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -77,12 +77,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A04_t03.dart
index 7d6a50f..3bff6e2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A04_t03.dart
@@ -41,11 +41,13 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -59,6 +61,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -78,7 +83,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Object> c2 = new ClassMember2_t03<Object>();
+  ClassMember2_t03<Object> c2 = new ClassMember2_t03<Object>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A05_t01.dart
index 9d847f1..b8eeb3b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A05_t01.dart
@@ -41,6 +41,8 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
@@ -90,14 +92,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A05_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A05_t02.dart
index bfb0ae0..0fdc7ec 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A05_t02.dart
@@ -41,18 +41,18 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t02 {
   Object m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -77,12 +77,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A05_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A05_t03.dart
index b10e96d..dbac753 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_class_member_A05_t03.dart
@@ -41,11 +41,13 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -59,6 +61,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -78,7 +83,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Object> c2 = new ClassMember2_t03<Object>();
+  ClassMember2_t03<Object> c2 = new ClassMember2_t03<Object>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A03_t02.dart
index 229ad44..5b61f27 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A03_t02.dart
@@ -29,7 +29,7 @@
  * arguments_binding_fail_x02.dart.
  * Don't modify it. If you want to change this file, change one of the files 
  * above and then run generator.dart to regenerate the tests.
- *
+ */
 
 
 import '../../utils/common.dart';
@@ -223,7 +223,6 @@
 }
 
 main() {
-  print(t0Instance.runtimeType);
   // test constructors
   Expect.throws(() {
     new ArgumentsBinding1_t02(forgetType(t0Instance));
@@ -316,13 +315,3 @@
   new ArgumentsBinding2_t02<Object>(t1Instance).test();
   //# -->
 }
-*/
-
-dynamic forgetType(dynamic v) => v;
-
-Object? o = new Object();
-foo(Object val) {}
-
-main() {
-  foo(forgetType(o)); // Runtime error?
-}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A03_t03.dart
index 8d636b8..6c23807 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A03_t03.dart
@@ -49,8 +49,8 @@
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => forgetType(t0Instance);
   void set superSetter(Object val) {}
 }
@@ -146,8 +146,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A04_t01.dart
index b61f596..960e57b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A04_t01.dart
@@ -42,6 +42,8 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A04_t02.dart
index 1d4debe..21158ac 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A04_t02.dart
@@ -42,6 +42,8 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A04_t03.dart
index b0ada15..1392308 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A04_t03.dart
@@ -42,13 +42,15 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => forgetType(t0Instance);
   void set superSetter(Object val) {}
 }
@@ -144,8 +146,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A05_t01.dart
index 7e8a957..fbb1632 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A05_t01.dart
@@ -36,11 +36,13 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A05_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A05_t02.dart
index f87caf4..ae618ec 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A05_t02.dart
@@ -36,11 +36,13 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A05_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A05_t03.dart
index 5f8c0bd..71d2b00 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A05_t03.dart
@@ -36,18 +36,20 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => forgetType(t0Instance);
   void set superSetter(Object val) {}
 }
@@ -143,8 +145,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A06_t01.dart
index f486b27..7e83cf9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A06_t01.dart
@@ -36,11 +36,13 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A06_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A06_t02.dart
index 0d33f80..9014b72 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A06_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A06_t02.dart
@@ -36,11 +36,13 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A06_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A06_t03.dart
index 85002ea..aafe048 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A06_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_arguments_binding_fail_A06_t03.dart
@@ -36,18 +36,20 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => forgetType(t0Instance);
   void set superSetter(Object val) {}
 }
@@ -143,8 +145,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A03_t01.dart
index c3bd7f1..f4503dd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A03_t01.dart
@@ -48,7 +48,7 @@
 
 
 class ClassMemberTestStatic {
-  static Object s;
+  static Object s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -66,7 +66,7 @@
 }
 
 class ClassMemberTestPublic {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -88,7 +88,7 @@
 }
 
 class ClassMemberTestPrivate {
-  Object _m;
+  Object _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -115,14 +115,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -137,14 +134,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -180,30 +174,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -229,30 +223,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<Object>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<Object>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<Object>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<Object>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<Object>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<Object>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<Object>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<Object>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A03_t02.dart
index 3583b85..ba8ff24 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A03_t02.dart
@@ -48,7 +48,7 @@
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -85,12 +85,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -106,8 +104,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -122,16 +118,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -141,16 +137,16 @@
   Expect.throws(() {new ClassMember2_t02<Object>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<Object>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<Object>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<Object>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().test1();
+    new ClassMember2_t02<Object>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().test2();
+    new ClassMember2_t02<Object>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A03_t03.dart
index ec9ec53..7739edc 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A03_t03.dart
@@ -48,7 +48,7 @@
 
 
 class ClassMemberSuper1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void set superSetter(Object val) {}
 }
@@ -67,11 +67,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -99,16 +103,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<Object>().m = forgetType(t0Instance);
+    new ClassMember2_t03<Object>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Object>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<Object>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Object>().test1();
+    new ClassMember2_t03<Object>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Object>().test2();
+    new ClassMember2_t03<Object>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A04_t01.dart
index 8f751b7..5747e80 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A04_t01.dart
@@ -42,11 +42,13 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberTestStatic {
-  static Object s;
+  static Object s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -64,7 +66,7 @@
 }
 
 class ClassMemberTestPublic {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -86,7 +88,7 @@
 }
 
 class ClassMemberTestPrivate {
-  Object _m;
+  Object _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -113,14 +115,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -135,14 +134,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -178,30 +174,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -227,30 +223,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<Object>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<Object>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<Object>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<Object>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<Object>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<Object>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<Object>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<Object>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A04_t02.dart
index 81ab79a..e77b3ec 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A04_t02.dart
@@ -42,11 +42,13 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -83,12 +85,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -104,8 +104,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -120,16 +118,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -139,16 +137,16 @@
   Expect.throws(() {new ClassMember2_t02<Object>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<Object>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<Object>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<Object>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().test1();
+    new ClassMember2_t02<Object>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().test2();
+    new ClassMember2_t02<Object>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A04_t03.dart
index 5a8a43e..096b8b3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A04_t03.dart
@@ -42,11 +42,13 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void set superSetter(Object val) {}
 }
@@ -65,11 +67,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -97,16 +103,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<Object>().m = forgetType(t0Instance);
+    new ClassMember2_t03<Object>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Object>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<Object>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Object>().test1();
+    new ClassMember2_t03<Object>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Object>().test2();
+    new ClassMember2_t03<Object>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A05_t01.dart
index 287e251..40953dd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A05_t01.dart
@@ -36,16 +36,18 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberTestStatic {
-  static Object s;
+  static Object s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -63,7 +65,7 @@
 }
 
 class ClassMemberTestPublic {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -85,7 +87,7 @@
 }
 
 class ClassMemberTestPrivate {
-  Object _m;
+  Object _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -112,14 +114,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -134,14 +133,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -177,30 +173,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -226,30 +222,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<Object>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<Object>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<Object>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<Object>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<Object>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<Object>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<Object>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<Object>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A05_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A05_t02.dart
index 1a8b299..ac74585 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A05_t02.dart
@@ -36,16 +36,18 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -82,12 +84,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -103,8 +103,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -119,16 +117,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -138,16 +136,16 @@
   Expect.throws(() {new ClassMember2_t02<Object>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<Object>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<Object>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<Object>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().test1();
+    new ClassMember2_t02<Object>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().test2();
+    new ClassMember2_t02<Object>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A05_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A05_t03.dart
index 138c392..9a45770 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A05_t03.dart
@@ -36,16 +36,18 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void set superSetter(Object val) {}
 }
@@ -64,11 +66,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -96,16 +102,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<Object>().m = forgetType(t0Instance);
+    new ClassMember2_t03<Object>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Object>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<Object>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Object>().test1();
+    new ClassMember2_t03<Object>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Object>().test2();
+    new ClassMember2_t03<Object>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A06_t01.dart
index c98b705..109fd6d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A06_t01.dart
@@ -36,16 +36,18 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberTestStatic {
-  static Object s;
+  static Object s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -63,7 +65,7 @@
 }
 
 class ClassMemberTestPublic {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -85,7 +87,7 @@
 }
 
 class ClassMemberTestPrivate {
-  Object _m;
+  Object _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -112,14 +114,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -134,14 +133,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -177,30 +173,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -226,30 +222,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<Object>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<Object>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<Object>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<Object>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<Object>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<Object>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<Object>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<Object>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<Object>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A06_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A06_t02.dart
index 90192b2..8a5f8f8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A06_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A06_t02.dart
@@ -36,16 +36,18 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -82,12 +84,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -103,8 +103,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -119,16 +117,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -138,16 +136,16 @@
   Expect.throws(() {new ClassMember2_t02<Object>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<Object>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<Object>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<Object>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().test1();
+    new ClassMember2_t02<Object>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<Object>.valid().test2();
+    new ClassMember2_t02<Object>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A06_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A06_t03.dart
index 988f101..20f96f3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A06_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_class_member_fail_A06_t03.dart
@@ -36,16 +36,18 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void set superSetter(Object val) {}
 }
@@ -64,11 +66,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -96,16 +102,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<Object>().m = forgetType(t0Instance);
+    new ClassMember2_t03<Object>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Object>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<Object>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Object>().test1();
+    new ClassMember2_t03<Object>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<Object>().test2();
+    new ClassMember2_t03<Object>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_global_variable_fail_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_global_variable_fail_A04_t01.dart
index 1642055..b9454e4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_global_variable_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_global_variable_fail_A04_t01.dart
@@ -42,6 +42,8 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_global_variable_fail_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_global_variable_fail_A05_t01.dart
index d99e294..ead3b8a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_global_variable_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_global_variable_fail_A05_t01.dart
@@ -36,11 +36,13 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_global_variable_fail_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_global_variable_fail_A06_t01.dart
index 885bdf6..a9bdef8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_global_variable_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_global_variable_fail_A06_t01.dart
@@ -36,11 +36,13 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A03_t01.dart
index 23ddb7f..8e54fbf 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A03_t01.dart
@@ -50,32 +50,27 @@
 class LocalVariableTest {
 
   LocalVariableTest() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 
   test() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A04_t01.dart
index df16e9d..8d739b0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A04_t01.dart
@@ -42,38 +42,35 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 
   test() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A05_t01.dart
index a2d515f..fadb212 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A05_t01.dart
@@ -36,43 +36,40 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 
   test() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A06_t01.dart
index f199356..7bde788 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_local_variable_fail_A06_t01.dart
@@ -36,43 +36,40 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 
   test() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    Object t1 = null;
-    t1 = forgetType(t0Instance);
+    Object t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_return_value_fail_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_return_value_fail_A04_t01.dart
index 555820d..81f6135 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_return_value_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_return_value_fail_A04_t01.dart
@@ -42,6 +42,8 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_return_value_fail_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_return_value_fail_A05_t01.dart
index 86e4acf..f64d6e1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_return_value_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_return_value_fail_A05_t01.dart
@@ -36,11 +36,13 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_return_value_fail_A06_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_return_value_fail_A06_t01.dart
index 1a97601..49fc541 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_return_value_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_fail_return_value_fail_A06_t01.dart
@@ -36,11 +36,13 @@
 import '../../../../Utils/expect.dart';
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_global_variable_A04_t01.dart
index fec9728..8bee1ea 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_global_variable_A04_t01.dart
@@ -41,6 +41,8 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_global_variable_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_global_variable_A05_t01.dart
index bed045a..2ea9bcf 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_global_variable_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_global_variable_A05_t01.dart
@@ -41,6 +41,8 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_local_variable_A04_t01.dart
index caa2bfe..4b8f54c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_local_variable_A04_t01.dart
@@ -41,6 +41,8 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_local_variable_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_local_variable_A05_t01.dart
index 4600e83..658ccb9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_local_variable_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_local_variable_A05_t01.dart
@@ -41,6 +41,8 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_return_value_A04_t01.dart
index 6533c2f..e52ead0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_return_value_A04_t01.dart
@@ -41,6 +41,8 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_object_return_value_A05_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_object_return_value_A05_t01.dart
index 356b83b..c3c30da 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_object_return_value_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_object_return_value_A05_t01.dart
@@ -41,6 +41,8 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A01_t01.dart
index a9f5c7b..143e770 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A01_t01.dart
@@ -31,6 +31,8 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 namedArgumentsFunc1(Object? t1, {Object? t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A01_t02.dart
index 66945c9..974a225 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A01_t02.dart
@@ -31,6 +31,8 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A01_t03.dart
index 59f0870..9571b27 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A01_t03.dart
@@ -31,6 +31,8 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A02_t01.dart
index 137a4cb..d9a7d44 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A02_t01.dart
@@ -25,12 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 namedArgumentsFunc1(dynamic t1, {dynamic t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A02_t02.dart
index 383b620..e4a6443 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A02_t02.dart
@@ -25,12 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A02_t03.dart
index 971aa2c..f58b98e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A02_t03.dart
@@ -25,12 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A03_t01.dart
index 2158a6b..5a89685 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A03_t01.dart
@@ -29,6 +29,8 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 namedArgumentsFunc1(Object? t1, {Object? t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A03_t02.dart
index 5438e95..2441263 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A03_t02.dart
@@ -29,6 +29,8 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A03_t03.dart
index a7723d4..5c499e4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A03_t03.dart
@@ -29,6 +29,8 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A04_t01.dart
index b0c2545..0016d3a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A04_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 namedArgumentsFunc1(dynamic t1, {dynamic t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A04_t02.dart
index 84bd210..bb66ba7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A04_t02.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A04_t03.dart
index c490cf0..dd21852 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_arguments_binding_A04_t03.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A01_t01.dart
index 35e7ae8..6c5d9ad 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A01_t01.dart
@@ -31,6 +31,8 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
@@ -80,14 +82,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A01_t02.dart
index ec738e3..8d6ef99 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A01_t02.dart
@@ -31,18 +31,18 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
 class ClassMemberSuper1_t02 {
   Object? m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -67,12 +67,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A01_t03.dart
index 2dea859..eba42f1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A01_t03.dart
@@ -31,11 +31,13 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Object? m;
+  Object? m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -49,6 +51,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -68,7 +73,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Object?> c2 = new ClassMember2_t03<Object?>();
+  ClassMember2_t03<Object?> c2 = new ClassMember2_t03<Object?>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A02_t01.dart
index c0b31b5..350a88e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A02_t01.dart
@@ -25,12 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
@@ -80,14 +82,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A02_t02.dart
index 9f3d871..cb3a42c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A02_t02.dart
@@ -25,24 +25,24 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
 class ClassMemberSuper1_t02 {
   dynamic m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -67,12 +67,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A02_t03.dart
index e0f794a..0fc3884 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A02_t03.dart
@@ -25,17 +25,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
 class ClassMemberMixin1_t03 {
-  dynamic m;
+  dynamic m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -49,6 +51,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -68,7 +73,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<dynamic> c2 = new ClassMember2_t03<dynamic>();
+  ClassMember2_t03<dynamic> c2 = new ClassMember2_t03<dynamic>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A03_t01.dart
index 04af640..27b0f84 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A03_t01.dart
@@ -29,6 +29,8 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
@@ -78,14 +80,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A03_t02.dart
index 32ea7f5..e7ed1bd 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A03_t02.dart
@@ -29,18 +29,18 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
 class ClassMemberSuper1_t02 {
   Object? m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -65,12 +65,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A03_t03.dart
index 6f3d9bd..f7ed27d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A03_t03.dart
@@ -29,11 +29,13 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Object? m;
+  Object? m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -47,6 +49,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -66,7 +71,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Object?> c2 = new ClassMember2_t03<Object?>();
+  ClassMember2_t03<Object?> c2 = new ClassMember2_t03<Object?>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A04_t01.dart
index e79d261..b703b6a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A04_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
@@ -78,14 +80,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A04_t02.dart
index a19914b..3e86072 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A04_t02.dart
@@ -25,22 +25,22 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
 class ClassMemberSuper1_t02 {
   dynamic m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -65,12 +65,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A04_t03.dart
index 97bf194..db3cb0d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_class_member_A04_t03.dart
@@ -25,15 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
 class ClassMemberMixin1_t03 {
-  dynamic m;
+  dynamic m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -47,6 +49,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -66,7 +71,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<dynamic> c2 = new ClassMember2_t03<dynamic>();
+  ClassMember2_t03<dynamic> c2 = new ClassMember2_t03<dynamic>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A01_t01.dart
index 1a6b58b..81c68e2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A01_t01.dart
@@ -31,6 +31,8 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A02_t01.dart
index 5bed0ec..9e124ef 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A02_t01.dart
@@ -25,12 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A03_t01.dart
index 60ed957..27a13d1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A03_t01.dart
@@ -29,6 +29,8 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A04_t01.dart
index 185076c..78b1710 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_global_variable_A04_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A01_t01.dart
index c7a79b2..0edc195 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A01_t01.dart
@@ -31,6 +31,8 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A02_t01.dart
index 2bfe49a..3dc5601 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A02_t01.dart
@@ -25,12 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A03_t01.dart
index 1fcade2..31b10b6 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A03_t01.dart
@@ -29,6 +29,8 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A04_t01.dart
index 1229703..0a2b074 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_local_variable_A04_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A01_t01.dart
index 0f27820..03f78f1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A01_t01.dart
@@ -31,6 +31,8 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A02_t01.dart
index 74a3c27..f64c495 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A02_t01.dart
@@ -25,12 +25,14 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A03_t01.dart
index 73a517a..fd97259 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A03_t01.dart
@@ -29,6 +29,8 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A04_t01.dart
index 5189fe7..1c574cc 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/right_top_return_value_A04_t01.dart
@@ -25,10 +25,12 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A01_t01.dart
index 7e7519f..fff676b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A01_t01.dart
@@ -26,8 +26,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -40,6 +42,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A01_t02.dart
index 178ac76..784fae3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A01_t02.dart
@@ -26,8 +26,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -40,6 +42,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A01_t03.dart
index a83ad1d..7f365ae 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A01_t03.dart
@@ -26,8 +26,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -40,6 +42,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A02_t01.dart
index 5c5a01c..77e5957 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A02_t01.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -41,6 +43,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A02_t02.dart
index 0abd052..378ca9c 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A02_t02.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -41,6 +43,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A02_t03.dart
index b2b41d7..e155a0a 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A02_t03.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -41,6 +43,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A03_t01.dart
index 965583d..960739d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A03_t01.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -43,6 +45,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A03_t02.dart
index e1479fa..9070ea8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A03_t02.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -43,6 +45,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A03_t03.dart
index 1ea81ee..452ed65 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_arguments_binding_A03_t03.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -43,6 +45,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A01_t01.dart
index 02a1b2f..df5e3f0 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A01_t01.dart
@@ -26,8 +26,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -40,6 +42,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
@@ -89,14 +93,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A01_t02.dart
index 0de804e..a030e39 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A01_t02.dart
@@ -26,8 +26,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -40,18 +42,18 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -76,12 +78,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A01_t03.dart
index 6d581e8..3c41994 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A01_t03.dart
@@ -26,8 +26,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -40,11 +42,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -58,6 +62,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -77,7 +84,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>();
+  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A02_t01.dart
index 4e0dfae..3794a5e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A02_t01.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -41,6 +43,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
@@ -90,14 +94,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A02_t02.dart
index ccb6b22..c78b863 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A02_t02.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -41,18 +43,18 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -77,12 +79,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A02_t03.dart
index d91ba76..80bad45 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A02_t03.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -41,11 +43,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -59,6 +63,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -78,7 +85,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>();
+  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A03_t01.dart
index e14f74b..775b6b8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A03_t01.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -43,6 +45,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
@@ -92,14 +96,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A03_t02.dart
index 8554bf5..95f7ca4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A03_t02.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -43,18 +45,18 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
   T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -79,12 +81,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A03_t03.dart
index c2b0852..051acf2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_class_member_A03_t03.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -43,11 +45,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -61,6 +65,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -80,7 +87,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>();
+  ClassMember2_t03<T1> c2 = new ClassMember2_t03<T1>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_arguments_binding_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_arguments_binding_fail_A01_t01.dart
index 63f84e4..52123f8 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_arguments_binding_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_arguments_binding_fail_A01_t01.dart
@@ -27,8 +27,10 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -42,6 +44,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_arguments_binding_fail_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_arguments_binding_fail_A01_t02.dart
index 7e4711d..222a19f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_arguments_binding_fail_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_arguments_binding_fail_A01_t02.dart
@@ -27,8 +27,10 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -42,6 +44,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_arguments_binding_fail_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_arguments_binding_fail_A01_t03.dart
index 1227d38..5fdb6fa 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_arguments_binding_fail_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_arguments_binding_fail_A01_t03.dart
@@ -27,8 +27,10 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -42,13 +44,15 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => forgetType(t0Instance);
   void set superSetter(T1 val) {}
 }
@@ -144,8 +148,7 @@
 
 class ArgumentsBindingSuper2_t03<X> {
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => forgetType(t0Instance);
   void set superSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_class_member_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_class_member_fail_A01_t01.dart
index f025faa..a98f317 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_class_member_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_class_member_fail_A01_t01.dart
@@ -27,8 +27,10 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -42,11 +44,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -64,7 +68,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -86,7 +90,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -113,14 +117,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -135,14 +136,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -178,30 +176,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -227,30 +225,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<T1>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_class_member_fail_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_class_member_fail_A01_t02.dart
index 9e41a66..39553b3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_class_member_fail_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_class_member_fail_A01_t02.dart
@@ -27,8 +27,10 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -42,11 +44,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -83,12 +87,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -104,8 +106,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -120,16 +120,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -139,16 +139,16 @@
   Expect.throws(() {new ClassMember2_t02<T1>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<T1>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<T1>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test1();
+    new ClassMember2_t02<T1>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<T1>.valid().test2();
+    new ClassMember2_t02<T1>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_class_member_fail_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_class_member_fail_A01_t03.dart
index 23a966b..de34dda 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_class_member_fail_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_class_member_fail_A01_t03.dart
@@ -27,8 +27,10 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -42,11 +44,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(T1 val) {}
 }
@@ -65,11 +69,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -97,16 +105,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<T1>().m = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<T1>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test1();
+    new ClassMember2_t03<T1>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<T1>().test2();
+    new ClassMember2_t03<T1>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_global_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_global_variable_fail_A01_t01.dart
index a2d6b13..eb0c565 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_global_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_global_variable_fail_A01_t01.dart
@@ -27,8 +27,10 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -42,6 +44,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_local_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_local_variable_fail_A01_t01.dart
index 70ac9d7..29a29ac 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_local_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_local_variable_fail_A01_t01.dart
@@ -27,8 +27,10 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -42,38 +44,35 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class LocalVariableTest {
 
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_return_value_fail_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_return_value_fail_A01_t01.dart
index 9455591..fef7e3d 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_return_value_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_fail_return_value_fail_A01_t01.dart
@@ -27,8 +27,10 @@
 
 import '../../utils/common.dart';
 import '../../../../Utils/expect.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -42,6 +44,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_global_variable_A01_t01.dart
index d1cd6ab..857117b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_global_variable_A01_t01.dart
@@ -26,8 +26,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -40,6 +42,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_global_variable_A02_t01.dart
index d1741e0..a25ad50 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_global_variable_A02_t01.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -41,6 +43,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_global_variable_A03_t01.dart
index b2157eb..ece3bf9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_global_variable_A03_t01.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -43,6 +45,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_local_variable_A01_t01.dart
index 09ccb95..731c88b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_local_variable_A01_t01.dart
@@ -26,8 +26,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -40,6 +42,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_local_variable_A02_t01.dart
index c672b66..a0bfc88 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_local_variable_A02_t01.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -41,6 +43,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_local_variable_A03_t01.dart
index 500b260..2d329e4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_local_variable_A03_t01.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -43,6 +45,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_return_value_A01_t01.dart
index c5b5b8b..d1cee59 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_return_value_A01_t01.dart
@@ -26,8 +26,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -40,6 +42,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_return_value_A02_t01.dart
index 50594e4..32999c9 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_return_value_A02_t01.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -41,6 +43,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_return_value_A03_t01.dart
index 857c3a8..42fa7b2 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/super_interface_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/super_interface_return_value_A03_t01.dart
@@ -27,8 +27,10 @@
 
 
 import '../../utils/common.dart';
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -43,6 +45,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_fail_x01.dart b/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_fail_x01.dart
index 84bbe9c..dbd1160 100644
--- a/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_fail_x01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_fail_x01.dart
@@ -10,7 +10,7 @@
  */
 
 class ClassMemberTestStatic {
-  static @T1 s;
+  static @T1 s = t1Default;
 
   ClassMemberTestStatic(dynamic val) {
     s = val;
@@ -28,7 +28,7 @@
 }
 
 class ClassMemberTestPublic {
-  @T1 m;
+  @T1 m = t1Default;
 
   ClassMemberTestPublic(dynamic val) {
     m = val;
@@ -50,7 +50,7 @@
 }
 
 class ClassMemberTestPrivate {
-  @T1 _m;
+  @T1 _m = t1Default;
 
   ClassMemberTestPrivate(dynamic val) {
     _m = val;
@@ -77,14 +77,11 @@
 class ClassMemberTestGenericPublic<X> {
   X m;
 
-  ClassMemberTestGenericPublic(dynamic val) {
-    m = val;
+  ClassMemberTestGenericPublic(dynamic val): m = val {
   }
 
   ClassMemberTestGenericPublic.short(this.m);
 
-  ClassMemberTestGenericPublic.validConstructor() {}
-
   test(dynamic val) {
     m = val;
   }
@@ -99,14 +96,11 @@
 class ClassMemberTestGenericPrivate<X> {
   X _m;
 
-  ClassMemberTestGenericPrivate(dynamic val) {
-    _m = val;
+  ClassMemberTestGenericPrivate(dynamic val): _m = val {
   }
 
   ClassMemberTestGenericPrivate.short(this._m);
 
-  ClassMemberTestGenericPrivate.validConstructor() {}
-
   test(dynamic val) {
     _m = val;
   }
@@ -142,30 +136,30 @@
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestPublic(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().setter = t0Instance;
+    new ClassMemberTestPublic(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().setter = t0Instance;
+    new ClassMemberTestPrivate(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().test(t0Instance);
+    new ClassMemberTestPublic(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestPrivate.validConstructor().test(t0Instance);
+    new ClassMemberTestPrivate(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestPublic.validConstructor().getter;
+    new ClassMemberTestPublic(t1Instance).getter;
   }, (e) => e is TypeError);
 
 
@@ -191,30 +185,30 @@
   //# <-- NotGenericFunctionType
   // Test getters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<@T1>.validConstructor().getter;
+    new ClassMemberTestGenericPublic<@T1>(t1Instance).getter;
   }, (e) => e is TypeError);
 
   // Test methods
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<@T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPublic<@T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<@T1>.validConstructor().test(t0Instance);
+    new ClassMemberTestGenericPrivate<@T1>(t1Instance).test(t0Instance);
   }, (e) => e is TypeError);
 
   // Test setters
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<@T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPublic<@T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   Expect.throws(() {
-    new ClassMemberTestGenericPrivate<@T1>.validConstructor().setter = t0Instance;
+    new ClassMemberTestGenericPrivate<@T1>(t1Instance).setter = t0Instance;
   }, (e) => e is TypeError);
 
   // Test class variables
   Expect.throws(() {
-    new ClassMemberTestGenericPublic<@T1>.validConstructor().m = forgetType(t0Instance);
+    new ClassMemberTestGenericPublic<@T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   // Test constructors
diff --git a/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_fail_x02.dart b/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_fail_x02.dart
index aa87d7d..de82078 100644
--- a/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_fail_x02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_fail_x02.dart
@@ -10,7 +10,7 @@
  */
 
 class ClassMemberSuper1_t02 {
-  @T1 m;
+  @T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -47,12 +47,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(X value) {
-    m = value;
+  ClassMemberSuper2_t02(X value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(X value) {
-    m = value;
+  ClassMemberSuper2_t02.named(X value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
@@ -68,8 +66,6 @@
 
   ClassMember2_t02.short() : super.short(forgetType(t0Instance));
 
-  ClassMember2_t02.valid() : super(null);
-
   test1() {
     m = forgetType(t0Instance);
   }
@@ -84,16 +80,16 @@
   Expect.throws(() {new ClassMember1_t02.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember1_t02.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().m = forgetType(t0Instance);
+    new ClassMember1_t02().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().superSetter = forgetType(t0Instance);
+    new ClassMember1_t02().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test1();
+    new ClassMember1_t02().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember1_t02.valid().test2();
+    new ClassMember1_t02().test2();
   }, (e) => e is TypeError);
 
   // Test type parameters
@@ -103,16 +99,16 @@
   Expect.throws(() {new ClassMember2_t02<@T1>.short();}, (e) => e is TypeError);
   Expect.throws(() {new ClassMember2_t02<@T1>.named();}, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<@T1>.valid().m = forgetType(t0Instance);
+    new ClassMember2_t02<@T1>().m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<@T1>.valid().superSetter = forgetType(t0Instance);
+    new ClassMember2_t02<@T1>().superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<@T1>.valid().test1();
+    new ClassMember2_t02<@T1>().test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t02<@T1>.valid().test2();
+    new ClassMember2_t02<@T1>().test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_fail_x03.dart b/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_fail_x03.dart
index 5c3c813..261e723 100644
--- a/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_fail_x03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_fail_x03.dart
@@ -10,7 +10,7 @@
  */
 
 class ClassMemberSuper1_t03 {
-  @T1 m;
+  @T1 m = t1Default;
 
   void set superSetter(@T1 val) {}
 }
@@ -29,11 +29,15 @@
 class ClassMemberSuper2_t03<X> {
   X m;
 
+  ClassMemberSuper2_t03(X x) : m = x {}
+
   void set superSetter(X val) {}
 }
 
 class ClassMember2_t03<X> extends ClassMemberSuper2_t03<X> {
 
+  ClassMember2_t03(X x): super(x) {}
+
   test1() {
     m = forgetType(t0Instance);
   }
@@ -61,16 +65,16 @@
 
   //# <-- NotGenericFunctionType
   Expect.throws(() {
-    new ClassMember2_t03<@T1>().m = forgetType(t0Instance);
+    new ClassMember2_t03<@T1>(t1Instance).m = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<@T1>().superSetter = forgetType(t0Instance);
+    new ClassMember2_t03<@T1>(t1Instance).superSetter = forgetType(t0Instance);
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<@T1>().test1();
+    new ClassMember2_t03<@T1>(t1Instance).test1();
   }, (e) => e is TypeError);
   Expect.throws(() {
-    new ClassMember2_t03<@T1>().test2();
+    new ClassMember2_t03<@T1>(t1Instance).test2();
   }, (e) => e is TypeError);
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_x01.dart b/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_x01.dart
index 78c7240..44db9ea 100644
--- a/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_x01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_x01.dart
@@ -55,14 +55,10 @@
   X m;
   X _p;
 
-  ClassMember2_t01() {
-    m = forgetType(t0Instance);
-    _p = forgetType(t0Instance);
+  ClassMember2_t01():  m = forgetType(t0Instance), _p = forgetType(t0Instance) {
   }
 
-  ClassMember2_t01.named(X value) {
-    m = value;
-    _p = value;
+  ClassMember2_t01.named(X value): m = value, _p = value {
   }
 
   ClassMember2_t01.short(this.m, this._p);
diff --git a/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_x02.dart b/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_x02.dart
index 2dc187a..c544943 100644
--- a/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_x02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_x02.dart
@@ -12,12 +12,10 @@
 class ClassMemberSuper1_t02 {
   @T1 m;
 
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper1_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper1_t02.short(this.m);
@@ -42,12 +40,10 @@
 class ClassMemberSuper2_t02<X> {
   X m;
 
-  ClassMemberSuper2_t02(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02(dynamic value): m = value {
   }
 
-  ClassMemberSuper2_t02.named(dynamic value) {
-    m = value;
+  ClassMemberSuper2_t02.named(dynamic value): m = value {
   }
 
   ClassMemberSuper2_t02.short(this.m);
diff --git a/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_x03.dart b/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_x03.dart
index c3f657b..7ac0be9 100644
--- a/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_x03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/test_cases/class_member_x03.dart
@@ -10,7 +10,7 @@
  */
 
 class ClassMemberMixin1_t03 {
-  @T1 m;
+  @T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
@@ -24,6 +24,9 @@
 
 class ClassMemberMixin2_t03<X> {
   X m;
+
+  ClassMemberMixin2_t03(X x): m = x {
+  }
   void set superSetter(dynamic val) {}
 }
 
@@ -43,7 +46,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<@T1> c2 = new ClassMember2_t03<@T1>();
+  ClassMember2_t03<@T1> c2 = new ClassMember2_t03<@T1>(t1Instance);
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/test_cases/local_variable_fail_x01.dart b/LanguageFeatures/Subtyping/dynamic/test_cases/local_variable_fail_x01.dart
index a8e97c2..c4696bd 100644
--- a/LanguageFeatures/Subtyping/dynamic/test_cases/local_variable_fail_x01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/test_cases/local_variable_fail_x01.dart
@@ -12,32 +12,27 @@
 class LocalVariableTest {
 
   LocalVariableTest() {
-    @T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    @T1 t1 = forgetType(t0Instance);
   }
 
   LocalVariableTest.valid() {}
 
   static staticTest() {
-    @T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    @T1 t1 = forgetType(t0Instance);
   }
 
   test() {
-    @T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    @T1 t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   bar () {
-    @T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    @T1 t1 = forgetType(t0Instance);
   }
 
   Expect.throws(() {
-    @T1 t1 = null;
-    t1 = forgetType(t0Instance);
+    @T1 t1 = forgetType(t0Instance);
   }, (e) => e is TypeError);
 
   Expect.throws(() {
diff --git a/LanguageFeatures/Subtyping/dynamic/test_types/left_FutureOr_fail_A01.dart b/LanguageFeatures/Subtyping/dynamic/test_types/left_FutureOr_fail_A01.dart
deleted file mode 100644
index c8320f6..0000000
--- a/LanguageFeatures/Subtyping/dynamic/test_types/left_FutureOr_fail_A01.dart
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left FutureOr: T0 is FutureOr<S0>
- *   and Future<S0> <: T1
- *   and S0 <: T1
- * @description Check that if a type T0 is FutureOr<S0> and Future<S0> is a
- * subtype of T1 but S0 is not a subtype of a type T1, then a type T0 is not a
- * subtype of a type T1.
- * @author ngl@unipro.ru
- */
-
-import "dart:async";
-
-class S0 {}
-
-FutureOr<S0> t0Instance = new S0();
-Future<S0> t1Instance = new Future<S0>.value(new S0()); // S0 is not a subtype of T1 (T1 is Future<S0>)
-
-//# @T0 = FutureOr<S0>
-//# @T1 = Future<S0>
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A01_t01.dart
index 602e94b..7504d51 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A01_t01.dart
@@ -24,39 +24,41 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -64,18 +66,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -106,18 +103,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A01_t02.dart
index 009193d..d4b9db5 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A01_t02.dart
@@ -24,11 +24,14 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -36,14 +39,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -71,31 +74,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -125,17 +120,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A01_t03.dart
index cb42731..8d20488 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A01_t03.dart
@@ -24,21 +24,24 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -58,12 +61,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -71,13 +70,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -99,11 +93,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A02_t01.dart
index 4b474fb..e23ecb0 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A02_t01.dart
@@ -25,41 +25,43 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -67,18 +69,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -109,18 +106,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A02_t02.dart
index b96a546..df811f8 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A02_t02.dart
@@ -25,13 +25,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -39,14 +42,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -74,31 +77,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -128,17 +123,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A02_t03.dart
index da2d0fc..c59d737 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A02_t03.dart
@@ -25,23 +25,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -61,12 +64,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -74,13 +73,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -102,11 +96,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A03_t01.dart
index 40716aa..9838b31 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A03_t01.dart
@@ -25,41 +25,44 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -67,18 +70,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -109,18 +107,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A03_t02.dart
index 7932cc9..50ab674 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A03_t02.dart
@@ -25,13 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
@@ -39,14 +43,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -74,31 +78,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -128,17 +124,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A03_t03.dart
index 1457fa6..45f0134 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A03_t03.dart
@@ -25,23 +25,27 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -61,12 +65,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -74,13 +74,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -102,11 +97,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A04_t01.dart
index da04cde..ad2794d 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A04_t01.dart
@@ -24,41 +24,43 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -66,18 +68,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -108,18 +105,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A04_t02.dart
index e9e4562..6ee46c9 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A04_t02.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -38,14 +41,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -73,31 +76,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -127,17 +122,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A04_t03.dart
index 786d97d..bb9885f 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A04_t03.dart
@@ -24,23 +24,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -60,12 +63,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -73,13 +72,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -101,11 +95,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A05_t01.dart
index 9ff1c6a..8fba142 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A05_t01.dart
@@ -24,41 +24,43 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -66,18 +68,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -108,18 +105,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A05_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A05_t02.dart
index 2f08747..d5c8bd7 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A05_t02.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -38,14 +41,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -73,31 +76,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -127,17 +122,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A05_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A05_t03.dart
index 0d9bbc0..a58a96b 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A05_t03.dart
@@ -24,23 +24,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -60,12 +63,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -73,13 +72,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -101,11 +95,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A06_t01.dart
index b202f0d..4db66df 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A06_t01.dart
@@ -24,41 +24,43 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -66,18 +68,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -108,18 +105,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A06_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A06_t02.dart
index 0917181..42da934 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A06_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A06_t02.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -38,14 +41,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -73,31 +76,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -127,17 +122,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A06_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A06_t03.dart
index d177d9c..3b2b2df 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A06_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A06_t03.dart
@@ -24,23 +24,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -60,12 +63,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -73,13 +72,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -101,11 +95,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A07_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A07_t01.dart
index c5f1f59..d398f01 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A07_t01.dart
@@ -24,41 +24,43 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -66,18 +68,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -108,18 +105,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A07_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A07_t02.dart
index e6f2b4f..d71cebb 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A07_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A07_t02.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -38,14 +41,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -73,31 +76,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -127,17 +122,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A07_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A07_t03.dart
index 63cec93..ab16212 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A07_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A07_t03.dart
@@ -24,23 +24,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -60,12 +63,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -73,13 +72,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -101,11 +95,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A08_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A08_t01.dart
index 6317304..130cd4a 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A08_t01.dart
@@ -24,41 +24,43 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -66,18 +68,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -108,18 +105,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A08_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A08_t02.dart
index e38c0b8..42132cc 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A08_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A08_t02.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -38,14 +41,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -73,31 +76,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -127,17 +122,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A08_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A08_t03.dart
index 71a1682..1930332 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A08_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A08_t03.dart
@@ -24,23 +24,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -60,12 +63,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -73,13 +72,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -101,11 +95,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A09_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A09_t01.dart
index 034370d..c3494f0 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A09_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A09_t01.dart
@@ -24,41 +24,43 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -66,18 +68,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -108,18 +105,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A09_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A09_t02.dart
index 1662f40..50eeee5 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A09_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A09_t02.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -38,14 +41,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -73,31 +76,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -127,17 +122,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A09_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A09_t03.dart
index 6148984..426b478 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A09_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A09_t03.dart
@@ -24,23 +24,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -60,12 +63,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -73,13 +72,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -101,11 +95,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A10_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A10_t01.dart
index e1db89d..95ddffc 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A10_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A10_t01.dart
@@ -24,42 +24,44 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -67,18 +69,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -109,18 +106,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A10_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A10_t02.dart
index 877a4f1..b518f28 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A10_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A10_t02.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -39,14 +42,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -74,31 +77,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -128,17 +123,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A10_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A10_t03.dart
index 1e84a49..d0bf414 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A10_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A10_t03.dart
@@ -24,24 +24,27 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -61,12 +64,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -74,13 +73,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -102,11 +96,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A11_t01.dart
index f4f35ee..1037be1 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A11_t01.dart
@@ -25,42 +25,44 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -68,18 +70,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -110,18 +107,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A11_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A11_t02.dart
index e827742..a7b0ba4 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A11_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A11_t02.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -40,14 +43,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -75,31 +78,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -129,17 +124,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A11_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A11_t03.dart
index b343557..6264f18 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A11_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A11_t03.dart
@@ -25,24 +25,27 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -62,12 +65,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -75,13 +74,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -103,11 +97,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A12_t01.dart
index c2093bb..42dccb28 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A12_t01.dart
@@ -25,42 +25,44 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -68,18 +70,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -110,18 +107,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A12_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A12_t02.dart
index d7f1a95..1832976 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A12_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A12_t02.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -40,14 +43,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -75,31 +78,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -129,17 +124,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A12_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A12_t03.dart
index d5384c7..1978eb1 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A12_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A12_t03.dart
@@ -25,24 +25,27 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -62,12 +65,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -75,13 +74,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -103,11 +97,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A13_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A13_t01.dart
index 120b1e0..58d0599 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A13_t01.dart
@@ -24,42 +24,44 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -67,18 +69,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -109,18 +106,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A13_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A13_t02.dart
index ca42a8f..7d60588 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A13_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A13_t02.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -39,14 +42,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -74,31 +77,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -128,17 +123,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A13_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A13_t03.dart
index 36ae0ce..2731a78 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A13_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A13_t03.dart
@@ -24,24 +24,27 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -61,12 +64,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -74,13 +73,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -102,11 +96,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A14_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A14_t01.dart
index 8b9aca6..89930d9 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A14_t01.dart
@@ -24,42 +24,44 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -67,18 +69,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -109,18 +106,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A14_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A14_t02.dart
index 89698dc..4284993 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A14_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A14_t02.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -39,14 +42,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -74,31 +77,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -128,17 +123,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A14_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A14_t03.dart
index b72983a..6c98d1d 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A14_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A14_t03.dart
@@ -24,24 +24,27 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -61,12 +64,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -74,13 +73,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -102,11 +96,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A15_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A15_t01.dart
index 4241d6b..c88a324 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A15_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A15_t01.dart
@@ -24,42 +24,44 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -67,18 +69,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -109,18 +106,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A15_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A15_t02.dart
index ca8af05..b8a6dad 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A15_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A15_t02.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -39,14 +42,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -74,31 +77,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -128,17 +123,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A15_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A15_t03.dart
index 1abd4fb..58476fa 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A15_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A15_t03.dart
@@ -24,24 +24,27 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -61,12 +64,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -74,13 +73,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -102,11 +96,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A16_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A16_t01.dart
index 1b060e2..377dbc6 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A16_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A16_t01.dart
@@ -25,42 +25,44 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -68,18 +70,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -110,18 +107,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A16_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A16_t02.dart
index 6959e81..9ce52d0 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A16_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A16_t02.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -40,14 +43,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -75,31 +78,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -129,17 +124,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A16_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A16_t03.dart
index bbeb98b..9f9978f 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A16_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A16_t03.dart
@@ -25,24 +25,27 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -62,12 +65,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -75,13 +74,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -103,11 +97,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A17_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A17_t01.dart
index 37d48ed..bd42603 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A17_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A17_t01.dart
@@ -24,42 +24,44 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -67,18 +69,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -109,18 +106,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A17_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A17_t02.dart
index 918d7be..d26d227 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A17_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A17_t02.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -39,14 +42,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -74,31 +77,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -128,17 +123,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A17_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A17_t03.dart
index 46965da..fb4cee0 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A17_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A17_t03.dart
@@ -24,24 +24,27 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -61,12 +64,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -74,13 +73,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -102,11 +96,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A18_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A18_t01.dart
index 8bd87e7..310c69f 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A18_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A18_t01.dart
@@ -24,42 +24,44 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
-namedArgumentsFunc1(Function t1, {Function t2}) {}
-positionalArgumentsFunc1(Function t1, [Function t2]) {}
+namedArgumentsFunc1(Function t1, {Function t2 = t1Default}) {}
+positionalArgumentsFunc1(Function t1, [Function t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Function t1) {}
 
-  ArgumentsBindingClass.named(Function t1, {Function t2}) {}
-  ArgumentsBindingClass.positional(Function t1, [Function t2]) {}
+  ArgumentsBindingClass.named(Function t1, {Function t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Function t1, [Function t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2}) {
+  factory ArgumentsBindingClass.fNamed(Function t1, {Function t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2]) {
+  factory ArgumentsBindingClass.fPositional(Function t1, [Function t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Function t1, {Function t2}) {}
-  static positionalArgumentsStaticMethod(Function t1, [Function t2]) {}
+  static namedArgumentsStaticMethod(Function t1, {Function t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Function t1, [Function t2 = t1Default]) {}
 
-  namedArgumentsMethod(Function t1, {Function t2}) {}
-  positionalArgumentsMethod(Function t1, [Function t2]) {}
+  namedArgumentsMethod(Function t1, {Function t2 = t1Default}) {}
+  positionalArgumentsMethod(Function t1, [Function t2 = t1Default]) {}
 
   set testSetter(Function val) {}
 }
@@ -67,18 +69,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -109,18 +106,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Function>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Function>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Function> instance2 = new ArgumentsBindingGen<Function>(t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Function>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Function>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A18_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A18_t02.dart
index a1edfd6..f9ec6a0 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A18_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A18_t02.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
@@ -39,14 +42,14 @@
 class ArgumentsBindingSuper1_t02 {
   Function m;
 
-  ArgumentsBindingSuper1_t02(Function value) {}
-  ArgumentsBindingSuper1_t02.named(Function value, {Function val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2]) {}
+  ArgumentsBindingSuper1_t02(Function value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Function value, {Function val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Function value, [Function val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -74,31 +77,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -128,17 +123,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Function> c2 =
     new ArgumentsBinding2_t02<Function>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Function>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Function>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A18_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A18_t03.dart
index d39d1c4..0355b2a 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A18_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_arguments_binding_A18_t03.dart
@@ -24,24 +24,27 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void superTest(Function val) {}
-  void superTestPositioned(Function val, [Function val2]) {}
-  void superTestNamed(Function val, {Function val2}) {}
+  void superTestPositioned(Function val, [Function val2 = t1Default]) {}
+  void superTestNamed(Function val, {Function val2 = t1Default}) {}
   Function get superGetter => m;
   void set superSetter(Function val) {}
 }
@@ -61,12 +64,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -74,13 +73,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -102,11 +96,7 @@
   ArgumentsBinding2_t03<Function> c2 = new ArgumentsBinding2_t03<Function>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A01_t01.dart
index a3ca1dc..4146980 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A01_t01.dart
@@ -24,11 +24,14 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A01_t02.dart
index 0a60877..e275236 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A01_t02.dart
@@ -24,17 +24,20 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A01_t03.dart
index f86dad2..c8db185 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A01_t03.dart
@@ -24,17 +24,20 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A02_t01.dart
index 9412ff4..06157be 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A02_t01.dart
@@ -25,13 +25,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A02_t02.dart
index cc87d18..8838449 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A02_t02.dart
@@ -25,19 +25,22 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A02_t03.dart
index 7c9e676..2fc5866 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A02_t03.dart
@@ -25,19 +25,22 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A03_t01.dart
index f9c47b7..81b96db 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A03_t01.dart
@@ -25,13 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A03_t02.dart
index 20bac4c..3cbb091 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A03_t02.dart
@@ -25,19 +25,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A03_t03.dart
index 71acd08..a45d058 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A03_t03.dart
@@ -25,19 +25,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A04_t01.dart
index 26c3cd8..3e8bb2d 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A04_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A04_t02.dart
index fbbe7a2..bf33b4a 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A04_t02.dart
@@ -24,19 +24,22 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A04_t03.dart
index b04970c..ed39dd1 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A04_t03.dart
@@ -24,19 +24,22 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A05_t01.dart
index a00ae06..1441436 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A05_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A05_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A05_t02.dart
index b31eb7c..101b3cd 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A05_t02.dart
@@ -24,19 +24,22 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A05_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A05_t03.dart
index 7b11ea1..498e567 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A05_t03.dart
@@ -24,19 +24,22 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A06_t01.dart
index 9254f62..332b2e4 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A06_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A06_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A06_t02.dart
index d6a8cd5..f0abe2e 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A06_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A06_t02.dart
@@ -24,19 +24,22 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A06_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A06_t03.dart
index aa333bf..f46f8c9 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A06_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A06_t03.dart
@@ -24,19 +24,22 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A07_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A07_t01.dart
index f3df3dd..5a64070 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A07_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A07_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A07_t02.dart
index ebb8feb..76ebf25 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A07_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A07_t02.dart
@@ -24,19 +24,22 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A07_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A07_t03.dart
index d1d4e54..2cc5227 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A07_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A07_t03.dart
@@ -24,19 +24,22 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A08_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A08_t01.dart
index 2572bcc..f0b6176 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A08_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A08_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A08_t02.dart
index a11a97a..cc210b8 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A08_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A08_t02.dart
@@ -24,19 +24,22 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A08_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A08_t03.dart
index 86f1d21..ccfdbcb 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A08_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A08_t03.dart
@@ -24,19 +24,22 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A09_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A09_t01.dart
index bdcaeb9..48e8f80 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A09_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A09_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A09_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A09_t02.dart
index ae28888..48ff533 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A09_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A09_t02.dart
@@ -24,19 +24,22 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A09_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A09_t03.dart
index 6d3e506..f7636f6 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A09_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A09_t03.dart
@@ -24,19 +24,22 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A10_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A10_t01.dart
index 31a9228..7082d9a 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A10_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A10_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A10_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A10_t02.dart
index 7ba53cd..fa89762 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A10_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A10_t02.dart
@@ -24,20 +24,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A10_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A10_t03.dart
index b6656cc..e01b6d6 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A10_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A10_t03.dart
@@ -24,20 +24,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A11_t01.dart
index b463fef..ad36207 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A11_t01.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A11_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A11_t02.dart
index bb28b08..aa13344 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A11_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A11_t02.dart
@@ -25,20 +25,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A11_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A11_t03.dart
index 6eeb030..402a25b 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A11_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A11_t03.dart
@@ -25,20 +25,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A12_t01.dart
index f9c4e4d..f97b946 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A12_t01.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A12_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A12_t02.dart
index 66fef3c..919edcd 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A12_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A12_t02.dart
@@ -25,20 +25,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A12_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A12_t03.dart
index fc61d9a..74a4a4f 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A12_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A12_t03.dart
@@ -25,20 +25,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A13_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A13_t01.dart
index d492912..c79729c 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A13_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A13_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A13_t02.dart
index 39666c2..a669c81 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A13_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A13_t02.dart
@@ -24,20 +24,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A13_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A13_t03.dart
index 5458581..90b4315 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A13_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A13_t03.dart
@@ -24,20 +24,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A14_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A14_t01.dart
index aed0e11..8549a39 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A14_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A14_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A14_t02.dart
index 6a690d6..d6f55c7 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A14_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A14_t02.dart
@@ -24,20 +24,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A14_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A14_t03.dart
index dcdc225..c48cba0 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A14_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A14_t03.dart
@@ -24,20 +24,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A15_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A15_t01.dart
index 0186b4a..7430cf0 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A15_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A15_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A15_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A15_t02.dart
index cf1fda3..982add9 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A15_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A15_t02.dart
@@ -24,20 +24,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A15_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A15_t03.dart
index f3725f5..581c989 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A15_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A15_t03.dart
@@ -24,20 +24,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A16_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A16_t01.dart
index 3d2e479..8a69989 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A16_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A16_t01.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A16_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A16_t02.dart
index 084e651..5f50c2c 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A16_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A16_t02.dart
@@ -25,20 +25,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A16_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A16_t03.dart
index 86c7ec6..567b935 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A16_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A16_t03.dart
@@ -25,20 +25,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A17_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A17_t01.dart
index 6dc9762..677d15d 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A17_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A17_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A17_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A17_t02.dart
index 80b435f..f816927 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A17_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A17_t02.dart
@@ -24,20 +24,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A17_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A17_t03.dart
index 372ce72..d28755d 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A17_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A17_t03.dart
@@ -24,20 +24,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A18_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A18_t01.dart
index 5d1a294..1fafc53 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A18_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A18_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A18_t02.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A18_t02.dart
index b2b4c0f..25fb4ae 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A18_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A18_t02.dart
@@ -24,20 +24,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Function m;
+  Function m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A18_t03.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A18_t03.dart
index 64f5025..910d2e3 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A18_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_class_member_A18_t03.dart
@@ -24,20 +24,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Function m;
+  Function m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A01_t01.dart
index 40c5b10..f31a941 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A01_t01.dart
@@ -24,11 +24,14 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A02_t01.dart
index a0378e0..9d8518e 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A02_t01.dart
@@ -25,13 +25,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A03_t01.dart
index 26bc837..6cc9903 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A03_t01.dart
@@ -25,13 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A04_t01.dart
index 26ca4f2..b3fcc64 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A04_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A05_t01.dart
index 0098b12..baba577 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A05_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A06_t01.dart
index fb8b9c2..990c881 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A06_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A07_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A07_t01.dart
index 228cfec..540cb07 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A07_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A08_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A08_t01.dart
index c7f1418..331a290 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A08_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A09_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A09_t01.dart
index c386519..eb29be1 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A09_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A09_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A10_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A10_t01.dart
index 6ac5184..78a51c1 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A10_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A10_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A11_t01.dart
index adcbc5c..faa60d8 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A11_t01.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A12_t01.dart
index 3807eff..a6f3402 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A12_t01.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A13_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A13_t01.dart
index edd0c99..9598371 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A13_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A14_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A14_t01.dart
index cd5a67c..345af38 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A14_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A15_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A15_t01.dart
index dc4ce0a..b2983e6 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A15_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A15_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A16_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A16_t01.dart
index f7f97f1..9f79fb4 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A16_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A16_t01.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A17_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A17_t01.dart
index 42dec25..90d4f90 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A17_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A17_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A18_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A18_t01.dart
index 83541ef..b8a3f19 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A18_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_global_variable_A18_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A01_t01.dart
index b06f26c..ea2370a 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A01_t01.dart
@@ -24,11 +24,14 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A02_t01.dart
index eb53b3b..0069611 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A02_t01.dart
@@ -25,13 +25,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A03_t01.dart
index 0e29a7a..4b5d6a3 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A03_t01.dart
@@ -25,13 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A04_t01.dart
index ae32b0b..a01fd1a 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A04_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A05_t01.dart
index e38abe7..e360436 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A05_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A06_t01.dart
index d722211..d8064d5 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A06_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A07_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A07_t01.dart
index 210a46a..cfa1d89 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A07_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A08_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A08_t01.dart
index 02c9318..bdb6af3 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A08_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A09_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A09_t01.dart
index 8eb82be..138041e 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A09_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A09_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A10_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A10_t01.dart
index 2e8728b..9b776c4 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A10_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A10_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A11_t01.dart
index d33fb4d..7e334f8 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A11_t01.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A12_t01.dart
index adc1122..f6db032 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A12_t01.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A13_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A13_t01.dart
index d829083..c04b420 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A13_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A14_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A14_t01.dart
index 8fec337..d276335 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A14_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A15_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A15_t01.dart
index b3dc9ad..5842aff 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A15_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A15_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A16_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A16_t01.dart
index 42b6579..fe34fdb 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A16_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A16_t01.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A17_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A17_t01.dart
index d7f807a..5d7e8bb 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A17_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A17_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A18_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A18_t01.dart
index aba30a6..3cfef77 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A18_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_local_variable_A18_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A01_t01.dart
index 32636aa..b286bf5 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A01_t01.dart
@@ -24,11 +24,14 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A02_t01.dart
index 7749c1b..86cf54e 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A02_t01.dart
@@ -25,13 +25,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A03_t01.dart
index 5f16579..22a5d17 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A03_t01.dart
@@ -25,13 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A04_t01.dart
index 993e639..c310f88 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A04_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A05_t01.dart
index a406413..f49705d 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A05_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A06_t01.dart
index e3cf0b8..2ddcf24 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A06_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A07_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A07_t01.dart
index 864ccf3..d9d0668 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A07_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A08_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A08_t01.dart
index 5a8561e..7bda2a7 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A08_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A09_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A09_t01.dart
index 5c34008..9cec400 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A09_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A09_t01.dart
@@ -24,13 +24,16 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A10_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A10_t01.dart
index 9c95eae..8adb361 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A10_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A10_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A11_t01.dart
index 38bdd53..20b80fc 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A11_t01.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A12_t01.dart
index 2da9156..b771ee6 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A12_t01.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A13_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A13_t01.dart
index 8091053..4e30ddf 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A13_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A14_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A14_t01.dart
index 6462c52..75f50a7 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A14_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A15_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A15_t01.dart
index 74b2e8b..70e45f9 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A15_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A15_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A16_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A16_t01.dart
index f6dc35e..a77001a 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A16_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A16_t01.dart
@@ -25,14 +25,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A17_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A17_t01.dart
index 03c8d68..095e4f4 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A17_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A17_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A18_t01.dart b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A18_t01.dart
index af40c62..681bc87 100644
--- a/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A18_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/function_type_function_return_value_A18_t01.dart
@@ -24,14 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A01_t01.dart
index ee29a1c..9404532 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A01_t01.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,38 +35,41 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
 
 
 
-namedArgumentsFunc1(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {}
-positionalArgumentsFunc1(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {}
+positionalArgumentsFunc1(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(C0<U0, U1, U2> t1) {}
 
-  ArgumentsBindingClass.named(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {}
-  ArgumentsBindingClass.positional(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {}
+  ArgumentsBindingClass.named(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {
+  factory ArgumentsBindingClass.fNamed(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {
+  factory ArgumentsBindingClass.fPositional(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {}
-  static positionalArgumentsStaticMethod(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {}
+  static namedArgumentsStaticMethod(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {}
 
-  namedArgumentsMethod(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {}
-  positionalArgumentsMethod(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {}
+  namedArgumentsMethod(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {}
+  positionalArgumentsMethod(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {}
 
   set testSetter(C0<U0, U1, U2> val) {}
 }
@@ -74,18 +77,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -116,18 +114,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<C0<U0, U1, U2>>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<C0<U0, U1, U2>>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<C0<U0, U1, U2>> instance2 = new ArgumentsBindingGen<C0<U0, U1, U2>>(t0Instance);
   instance2 = new ArgumentsBindingGen<C0<U0, U1, U2>>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<C0<U0, U1, U2>>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<C0<U0, U1, U2>>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<C0<U0, U1, U2>>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A01_t02.dart
index e465924..964b921 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A01_t02.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,25 +35,29 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   C0<U0, U1, U2> m;
 
-  ArgumentsBindingSuper1_t02(C0<U0, U1, U2> value) {}
-  ArgumentsBindingSuper1_t02.named(C0<U0, U1, U2> value, {C0<U0, U1, U2> val2}) {}
-  ArgumentsBindingSuper1_t02.positional(C0<U0, U1, U2> value, [C0<U0, U1, U2> val2]) {}
+  ArgumentsBindingSuper1_t02(C0<U0, U1, U2> value): m = value {}
+  ArgumentsBindingSuper1_t02.named(C0<U0, U1, U2> value, {C0<U0, U1, U2> val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(C0<U0, U1, U2> value, [C0<U0, U1, U2> val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(C0<U0, U1, U2> val) {}
-  void superTestPositioned(C0<U0, U1, U2> val, [C0<U0, U1, U2> val2]) {}
-  void superTestNamed(C0<U0, U1, U2> val, {C0<U0, U1, U2> val2}) {}
+  void superTestPositioned(C0<U0, U1, U2> val, [C0<U0, U1, U2> val2 = t1Default]) {}
+  void superTestNamed(C0<U0, U1, U2> val, {C0<U0, U1, U2> val2 = t1Default}) {}
   C0<U0, U1, U2> get superGetter => m;
   void set superSetter(C0<U0, U1, U2> val) {}
 }
@@ -81,31 +85,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -135,17 +131,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<C0<U0, U1, U2>> c2 =
     new ArgumentsBinding2_t02<C0<U0, U1, U2>>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<C0<U0, U1, U2>>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<C0<U0, U1, U2>>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<C0<U0, U1, U2>>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<C0<U0, U1, U2>>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<C0<U0, U1, U2>>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A01_t03.dart
index fcdb891..1950c44 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A01_t03.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,20 +35,24 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  C0<U0, U1, U2> m;
+  C0<U0, U1, U2> m = t1Default;
 
   void superTest(C0<U0, U1, U2> val) {}
-  void superTestPositioned(C0<U0, U1, U2> val, [C0<U0, U1, U2> val2]) {}
-  void superTestNamed(C0<U0, U1, U2> val, {C0<U0, U1, U2> val2}) {}
+  void superTestPositioned(C0<U0, U1, U2> val, [C0<U0, U1, U2> val2 = t1Default]) {}
+  void superTestNamed(C0<U0, U1, U2> val, {C0<U0, U1, U2> val2 = t1Default}) {}
   C0<U0, U1, U2> get superGetter => m;
   void set superSetter(C0<U0, U1, U2> val) {}
 }
@@ -68,12 +72,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -81,13 +81,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -109,11 +104,7 @@
   ArgumentsBinding2_t03<C0<U0, U1, U2>> c2 = new ArgumentsBinding2_t03<C0<U0, U1, U2>>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A02_t01.dart
index 6e673d4..52b6500 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A02_t01.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,38 +35,41 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
 
 
 
-namedArgumentsFunc1(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {}
-positionalArgumentsFunc1(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {}
+positionalArgumentsFunc1(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(C0<U0, U1, U2> t1) {}
 
-  ArgumentsBindingClass.named(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {}
-  ArgumentsBindingClass.positional(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {}
+  ArgumentsBindingClass.named(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {
+  factory ArgumentsBindingClass.fNamed(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {
+  factory ArgumentsBindingClass.fPositional(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {}
-  static positionalArgumentsStaticMethod(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {}
+  static namedArgumentsStaticMethod(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {}
 
-  namedArgumentsMethod(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {}
-  positionalArgumentsMethod(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {}
+  namedArgumentsMethod(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {}
+  positionalArgumentsMethod(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {}
 
   set testSetter(C0<U0, U1, U2> val) {}
 }
@@ -74,18 +77,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -116,18 +114,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<C0<U0, U1, U2>>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<C0<U0, U1, U2>>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<C0<U0, U1, U2>> instance2 = new ArgumentsBindingGen<C0<U0, U1, U2>>(t0Instance);
   instance2 = new ArgumentsBindingGen<C0<U0, U1, U2>>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<C0<U0, U1, U2>>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<C0<U0, U1, U2>>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<C0<U0, U1, U2>>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A02_t02.dart
index d24aba9..48c77c1 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A02_t02.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,25 +35,29 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   C0<U0, U1, U2> m;
 
-  ArgumentsBindingSuper1_t02(C0<U0, U1, U2> value) {}
-  ArgumentsBindingSuper1_t02.named(C0<U0, U1, U2> value, {C0<U0, U1, U2> val2}) {}
-  ArgumentsBindingSuper1_t02.positional(C0<U0, U1, U2> value, [C0<U0, U1, U2> val2]) {}
+  ArgumentsBindingSuper1_t02(C0<U0, U1, U2> value): m = value {}
+  ArgumentsBindingSuper1_t02.named(C0<U0, U1, U2> value, {C0<U0, U1, U2> val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(C0<U0, U1, U2> value, [C0<U0, U1, U2> val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(C0<U0, U1, U2> val) {}
-  void superTestPositioned(C0<U0, U1, U2> val, [C0<U0, U1, U2> val2]) {}
-  void superTestNamed(C0<U0, U1, U2> val, {C0<U0, U1, U2> val2}) {}
+  void superTestPositioned(C0<U0, U1, U2> val, [C0<U0, U1, U2> val2 = t1Default]) {}
+  void superTestNamed(C0<U0, U1, U2> val, {C0<U0, U1, U2> val2 = t1Default}) {}
   C0<U0, U1, U2> get superGetter => m;
   void set superSetter(C0<U0, U1, U2> val) {}
 }
@@ -81,31 +85,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -135,17 +131,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<C0<U0, U1, U2>> c2 =
     new ArgumentsBinding2_t02<C0<U0, U1, U2>>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<C0<U0, U1, U2>>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<C0<U0, U1, U2>>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<C0<U0, U1, U2>>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<C0<U0, U1, U2>>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<C0<U0, U1, U2>>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A02_t03.dart
index 549154c..f033de1 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_arguments_binding_A02_t03.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,20 +35,24 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  C0<U0, U1, U2> m;
+  C0<U0, U1, U2> m = t1Default;
 
   void superTest(C0<U0, U1, U2> val) {}
-  void superTestPositioned(C0<U0, U1, U2> val, [C0<U0, U1, U2> val2]) {}
-  void superTestNamed(C0<U0, U1, U2> val, {C0<U0, U1, U2> val2}) {}
+  void superTestPositioned(C0<U0, U1, U2> val, [C0<U0, U1, U2> val2 = t1Default]) {}
+  void superTestNamed(C0<U0, U1, U2> val, {C0<U0, U1, U2> val2 = t1Default}) {}
   C0<U0, U1, U2> get superGetter => m;
   void set superSetter(C0<U0, U1, U2> val) {}
 }
@@ -68,12 +72,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -81,13 +81,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -109,11 +104,7 @@
   ArgumentsBinding2_t03<C0<U0, U1, U2>> c2 = new ArgumentsBinding2_t03<C0<U0, U1, U2>>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A01_t01.dart
index 51ffd1c..140cec2 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A01_t01.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,11 +35,15 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A01_t02.dart
index 7307276..e5a2220 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A01_t02.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,16 +35,20 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  C0<U0, U1, U2> m;
+  C0<U0, U1, U2> m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A01_t03.dart
index 4a65549..6a28b08 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A01_t03.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,16 +35,20 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  C0<U0, U1, U2> m;
+  C0<U0, U1, U2> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A02_t01.dart
index 007f074..56d7a6a 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A02_t01.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,11 +35,15 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A02_t02.dart
index cbf62fa..f2e6462 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A02_t02.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,16 +35,20 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  C0<U0, U1, U2> m;
+  C0<U0, U1, U2> m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A02_t03.dart
index 5e3da76..3b8ef7c 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_class_member_A02_t03.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,16 +35,20 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  C0<U0, U1, U2> m;
+  C0<U0, U1, U2> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_arguments_binding_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_arguments_binding_fail_A01_t01.dart
index 94103f6..ddbbe2b 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_arguments_binding_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_arguments_binding_fail_A01_t01.dart
@@ -28,7 +28,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -38,35 +38,39 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
 
 
 
-namedArgumentsFunc1(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {}
-positionalArgumentsFunc1(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {}
+
+namedArgumentsFunc1(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {}
+positionalArgumentsFunc1(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(C0<U0, U1, U2> t1) {}
 
-    ArgumentsBindingClass.named(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {}
-    ArgumentsBindingClass.positional(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {}
+    ArgumentsBindingClass.named(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {
+    factory ArgumentsBindingClass.fNamed(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {
+    factory ArgumentsBindingClass.fPositional(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {}
-    static positionalArgumentsStaticMethod(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {}
+    static namedArgumentsStaticMethod(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {}
 
-    namedArgumentsMethod(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2}) {}
-    positionalArgumentsMethod(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2]) {}
+    namedArgumentsMethod(C0<U0, U1, U2> t1, {C0<U0, U1, U2> t2 = t1Default}) {}
+    positionalArgumentsMethod(C0<U0, U1, U2> t1, [C0<U0, U1, U2> t2 = t1Default]) {}
 
     set testSetter(C0<U0, U1, U2> val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_arguments_binding_mixin_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_arguments_binding_mixin_fail_A01_t01.dart
index eb03bc5..56c47d0 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_arguments_binding_mixin_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_arguments_binding_mixin_fail_A01_t01.dart
@@ -29,7 +29,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -39,18 +39,22 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(C0<U0, U1, U2> val) {}
-  void superTestPositioned(C0<U0, U1, U2> val, [C0<U0, U1, U2> val2]) {}
-  void superTestNamed(C0<U0, U1, U2> val, {C0<U0, U1, U2> val2}) {}
+  void superTestPositioned(C0<U0, U1, U2> val, [C0<U0, U1, U2> val2 = t1Default]) {}
+  void superTestNamed(C0<U0, U1, U2> val, {C0<U0, U1, U2> val2 = t1Default}) {}
   C0<U0, U1, U2> get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(C0<U0, U1, U2> val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_arguments_binding_super_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_arguments_binding_super_fail_A01_t01.dart
index bd6c919..4ba2a37 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_arguments_binding_super_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_arguments_binding_super_fail_A01_t01.dart
@@ -29,7 +29,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -39,25 +39,29 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   C0<U0, U1, U2> m;
 
-  ArgumentsBindingSuper1_t02(C0<U0, U1, U2> value) {}
-  ArgumentsBindingSuper1_t02.named(C0<U0, U1, U2> value, {C0<U0, U1, U2> val2}) {}
-  ArgumentsBindingSuper1_t02.positional(C0<U0, U1, U2> value, [C0<U0, U1, U2> val2]) {}
+  ArgumentsBindingSuper1_t02(C0<U0, U1, U2> value): m = value {}
+  ArgumentsBindingSuper1_t02.named(C0<U0, U1, U2> value, {C0<U0, U1, U2> val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(C0<U0, U1, U2> value, [C0<U0, U1, U2> val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(C0<U0, U1, U2> val) {}
-  void superTestPositioned(C0<U0, U1, U2> val, [C0<U0, U1, U2> val2]) {}
-  void superTestNamed(C0<U0, U1, U2> val, {C0<U0, U1, U2> val2}) {}
+  void superTestPositioned(C0<U0, U1, U2> val, [C0<U0, U1, U2> val2 = t1Default]) {}
+  void superTestNamed(C0<U0, U1, U2> val, {C0<U0, U1, U2> val2 = t1Default}) {}
   C0<U0, U1, U2> get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(C0<U0, U1, U2> val) {}
 }
@@ -70,7 +74,7 @@
   ArgumentsBinding1_t02.c4(C0<U0, U1, U2> t1, C0<S0, S1, S2> t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(C0<U0, U1, U2> t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_class_member_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_class_member_fail_A01_t01.dart
index 409a48e..e4c28e8 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_class_member_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_class_member_fail_A01_t01.dart
@@ -29,7 +29,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -39,16 +39,20 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ClassMemberTestStatic {
-  static C0<U0, U1, U2> s;
+  static C0<U0, U1, U2> s = t1Default;
 
   ClassMemberTestStatic(C0<S0, S1, S2> val) {
     s = val; //# 01: compile-time error
@@ -66,7 +70,7 @@
 }
 
 class ClassMemberTestPublic {
-  C0<U0, U1, U2> m;
+  C0<U0, U1, U2> m = t1Default;
 
   ClassMemberTestPublic(C0<S0, S1, S2> val) {
     m = val; //# 05: compile-time error
@@ -88,7 +92,7 @@
 }
 
 class ClassMemberTestPrivate {
-  C0<U0, U1, U2> _m;
+  C0<U0, U1, U2> _m = t1Default;
 
   ClassMemberTestPrivate(C0<S0, S1, S2> val) {
     _m = val; //# 10: compile-time error
@@ -129,4 +133,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_class_member_mixin_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_class_member_mixin_fail_A01_t01.dart
index 480d64d..f7bd157 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_class_member_mixin_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_class_member_mixin_fail_A01_t01.dart
@@ -29,7 +29,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -39,16 +39,20 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  C0<U0, U1, U2> m;
+  C0<U0, U1, U2> m = t1Default;
   void set superSetter(C0<U0, U1, U2> val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_class_member_super_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_class_member_super_fail_A01_t01.dart
index c60fcfb..d942120 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_class_member_super_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_class_member_super_fail_A01_t01.dart
@@ -29,7 +29,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -39,16 +39,20 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  C0<U0, U1, U2> m;
+  C0<U0, U1, U2> m = t1Default;
 
   ClassMemberSuper1_t02(C0<S0, S1, S2> value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_global_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_global_variable_fail_A01_t01.dart
index c89f46d..beb5936 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_global_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_global_variable_fail_A01_t01.dart
@@ -29,7 +29,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -39,11 +39,15 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_local_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_local_variable_fail_A01_t01.dart
index e70a62b..d465352 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_local_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_local_variable_fail_A01_t01.dart
@@ -29,7 +29,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -39,40 +39,39 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    C0<U0, U1, U2> t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    C0<U0, U1, U2> t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    C0<U0, U1, U2> t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    C0<U0, U1, U2> t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    C0<U0, U1, U2> t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    C0<U0, U1, U2> t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  C0<U0, U1, U2> t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  C0<U0, U1, U2> t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    C0<U0, U1, U2> t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    C0<U0, U1, U2> t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_return_value_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_return_value_fail_A01_t01.dart
index 12f60c8..222f0dd 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_return_value_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_fail_return_value_fail_A01_t01.dart
@@ -28,7 +28,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -38,11 +38,15 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_global_variable_A01_t01.dart
index 0f0032d..6a5bb12 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_global_variable_A01_t01.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,11 +35,15 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_global_variable_A02_t01.dart
index 4b0bedb..7550449 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_global_variable_A02_t01.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,11 +35,15 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_local_variable_A01_t01.dart
index 1605320..496725f 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_local_variable_A01_t01.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,11 +35,15 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_local_variable_A02_t01.dart
index ff0f475..c41ed8d 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_local_variable_A02_t01.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,11 +35,15 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_return_value_A01_t01.dart
index f2f2f92..73ba8a3 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_return_value_A01_t01.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,11 +35,15 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_return_value_A02_t01.dart
index 1a4700d..a59bd90 100644
--- a/LanguageFeatures/Subtyping/static/generated/interface_compositionality_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/interface_compositionality_return_value_A02_t01.dart
@@ -26,7 +26,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -35,11 +35,15 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A01_t01.dart
index 6ec0b31..be03b62 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A01_t01.dart
@@ -27,42 +27,45 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
 
 
 
-namedArgumentsFunc1(FutureOr<C> t1, {FutureOr<C> t2}) {}
-positionalArgumentsFunc1(FutureOr<C> t1, [FutureOr<C> t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(FutureOr<C> t1, {FutureOr<C> t2 = t1Default}) {}
+positionalArgumentsFunc1(FutureOr<C> t1, [FutureOr<C> t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(FutureOr<C> t1) {}
 
-  ArgumentsBindingClass.named(FutureOr<C> t1, {FutureOr<C> t2}) {}
-  ArgumentsBindingClass.positional(FutureOr<C> t1, [FutureOr<C> t2]) {}
+  ArgumentsBindingClass.named(FutureOr<C> t1, {FutureOr<C> t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(FutureOr<C> t1, [FutureOr<C> t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(FutureOr<C> t1, {FutureOr<C> t2}) {
+  factory ArgumentsBindingClass.fNamed(FutureOr<C> t1, {FutureOr<C> t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(FutureOr<C> t1, [FutureOr<C> t2]) {
+  factory ArgumentsBindingClass.fPositional(FutureOr<C> t1, [FutureOr<C> t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(FutureOr<C> t1, {FutureOr<C> t2}) {}
-  static positionalArgumentsStaticMethod(FutureOr<C> t1, [FutureOr<C> t2]) {}
+  static namedArgumentsStaticMethod(FutureOr<C> t1, {FutureOr<C> t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(FutureOr<C> t1, [FutureOr<C> t2 = t1Default]) {}
 
-  namedArgumentsMethod(FutureOr<C> t1, {FutureOr<C> t2}) {}
-  positionalArgumentsMethod(FutureOr<C> t1, [FutureOr<C> t2]) {}
+  namedArgumentsMethod(FutureOr<C> t1, {FutureOr<C> t2 = t1Default}) {}
+  positionalArgumentsMethod(FutureOr<C> t1, [FutureOr<C> t2 = t1Default]) {}
 
   set testSetter(FutureOr<C> val) {}
 }
@@ -70,18 +73,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -112,18 +110,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<FutureOr<C>>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<FutureOr<C>>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<FutureOr<C>> instance2 = new ArgumentsBindingGen<FutureOr<C>>(t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<C>>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<C>>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<C>>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<C>>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A01_t02.dart
index 9340d15..014eca9 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A01_t02.dart
@@ -27,29 +27,33 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   FutureOr<C> m;
 
-  ArgumentsBindingSuper1_t02(FutureOr<C> value) {}
-  ArgumentsBindingSuper1_t02.named(FutureOr<C> value, {FutureOr<C> val2}) {}
-  ArgumentsBindingSuper1_t02.positional(FutureOr<C> value, [FutureOr<C> val2]) {}
+  ArgumentsBindingSuper1_t02(FutureOr<C> value): m = value {}
+  ArgumentsBindingSuper1_t02.named(FutureOr<C> value, {FutureOr<C> val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(FutureOr<C> value, [FutureOr<C> val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(FutureOr<C> val) {}
-  void superTestPositioned(FutureOr<C> val, [FutureOr<C> val2]) {}
-  void superTestNamed(FutureOr<C> val, {FutureOr<C> val2}) {}
+  void superTestPositioned(FutureOr<C> val, [FutureOr<C> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<C> val, {FutureOr<C> val2 = t1Default}) {}
   FutureOr<C> get superGetter => m;
   void set superSetter(FutureOr<C> val) {}
 }
@@ -77,31 +81,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -131,17 +127,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<FutureOr<C>> c2 =
     new ArgumentsBinding2_t02<FutureOr<C>>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<C>>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<C>>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<C>>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<C>>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<C>>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A01_t03.dart
index 400eb63..a5680d2 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A01_t03.dart
@@ -27,24 +27,28 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  FutureOr<C> m;
+  FutureOr<C> m = t1Default;
 
   void superTest(FutureOr<C> val) {}
-  void superTestPositioned(FutureOr<C> val, [FutureOr<C> val2]) {}
-  void superTestNamed(FutureOr<C> val, {FutureOr<C> val2}) {}
+  void superTestPositioned(FutureOr<C> val, [FutureOr<C> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<C> val, {FutureOr<C> val2 = t1Default}) {}
   FutureOr<C> get superGetter => m;
   void set superSetter(FutureOr<C> val) {}
 }
@@ -64,12 +68,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -77,13 +77,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -105,11 +100,7 @@
   ArgumentsBinding2_t03<FutureOr<C>> c2 = new ArgumentsBinding2_t03<FutureOr<C>>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A02_t01.dart
index 58239f7..2b82d2d 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A02_t01.dart
@@ -27,42 +27,45 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
 
 
 
-namedArgumentsFunc1(FutureOr<C> t1, {FutureOr<C> t2}) {}
-positionalArgumentsFunc1(FutureOr<C> t1, [FutureOr<C> t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(FutureOr<C> t1, {FutureOr<C> t2 = t1Default}) {}
+positionalArgumentsFunc1(FutureOr<C> t1, [FutureOr<C> t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(FutureOr<C> t1) {}
 
-  ArgumentsBindingClass.named(FutureOr<C> t1, {FutureOr<C> t2}) {}
-  ArgumentsBindingClass.positional(FutureOr<C> t1, [FutureOr<C> t2]) {}
+  ArgumentsBindingClass.named(FutureOr<C> t1, {FutureOr<C> t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(FutureOr<C> t1, [FutureOr<C> t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(FutureOr<C> t1, {FutureOr<C> t2}) {
+  factory ArgumentsBindingClass.fNamed(FutureOr<C> t1, {FutureOr<C> t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(FutureOr<C> t1, [FutureOr<C> t2]) {
+  factory ArgumentsBindingClass.fPositional(FutureOr<C> t1, [FutureOr<C> t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(FutureOr<C> t1, {FutureOr<C> t2}) {}
-  static positionalArgumentsStaticMethod(FutureOr<C> t1, [FutureOr<C> t2]) {}
+  static namedArgumentsStaticMethod(FutureOr<C> t1, {FutureOr<C> t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(FutureOr<C> t1, [FutureOr<C> t2 = t1Default]) {}
 
-  namedArgumentsMethod(FutureOr<C> t1, {FutureOr<C> t2}) {}
-  positionalArgumentsMethod(FutureOr<C> t1, [FutureOr<C> t2]) {}
+  namedArgumentsMethod(FutureOr<C> t1, {FutureOr<C> t2 = t1Default}) {}
+  positionalArgumentsMethod(FutureOr<C> t1, [FutureOr<C> t2 = t1Default]) {}
 
   set testSetter(FutureOr<C> val) {}
 }
@@ -70,18 +73,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -112,18 +110,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<FutureOr<C>>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<FutureOr<C>>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<FutureOr<C>> instance2 = new ArgumentsBindingGen<FutureOr<C>>(t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<C>>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<C>>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<C>>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<C>>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A02_t02.dart
index 1d21e0b..35cfd6a 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A02_t02.dart
@@ -27,29 +27,33 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   FutureOr<C> m;
 
-  ArgumentsBindingSuper1_t02(FutureOr<C> value) {}
-  ArgumentsBindingSuper1_t02.named(FutureOr<C> value, {FutureOr<C> val2}) {}
-  ArgumentsBindingSuper1_t02.positional(FutureOr<C> value, [FutureOr<C> val2]) {}
+  ArgumentsBindingSuper1_t02(FutureOr<C> value): m = value {}
+  ArgumentsBindingSuper1_t02.named(FutureOr<C> value, {FutureOr<C> val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(FutureOr<C> value, [FutureOr<C> val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(FutureOr<C> val) {}
-  void superTestPositioned(FutureOr<C> val, [FutureOr<C> val2]) {}
-  void superTestNamed(FutureOr<C> val, {FutureOr<C> val2}) {}
+  void superTestPositioned(FutureOr<C> val, [FutureOr<C> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<C> val, {FutureOr<C> val2 = t1Default}) {}
   FutureOr<C> get superGetter => m;
   void set superSetter(FutureOr<C> val) {}
 }
@@ -77,31 +81,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -131,17 +127,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<FutureOr<C>> c2 =
     new ArgumentsBinding2_t02<FutureOr<C>>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<C>>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<C>>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<C>>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<C>>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<C>>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A02_t03.dart
index 61ba592..3f1ce99 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A02_t03.dart
@@ -27,24 +27,28 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  FutureOr<C> m;
+  FutureOr<C> m = t1Default;
 
   void superTest(FutureOr<C> val) {}
-  void superTestPositioned(FutureOr<C> val, [FutureOr<C> val2]) {}
-  void superTestNamed(FutureOr<C> val, {FutureOr<C> val2}) {}
+  void superTestPositioned(FutureOr<C> val, [FutureOr<C> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<C> val, {FutureOr<C> val2 = t1Default}) {}
   FutureOr<C> get superGetter => m;
   void set superSetter(FutureOr<C> val) {}
 }
@@ -64,12 +68,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -77,13 +77,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -105,11 +100,7 @@
   ArgumentsBinding2_t03<FutureOr<C>> c2 = new ArgumentsBinding2_t03<FutureOr<C>>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A03_t01.dart
index 045a7d2..399ae99 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A03_t01.dart
@@ -27,44 +27,47 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
 
 
 
-namedArgumentsFunc1(FutureOr<C<A>> t1, {FutureOr<C<A>> t2}) {}
-positionalArgumentsFunc1(FutureOr<C<A>> t1, [FutureOr<C<A>> t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(FutureOr<C<A>> t1, {FutureOr<C<A>> t2 = t1Default}) {}
+positionalArgumentsFunc1(FutureOr<C<A>> t1, [FutureOr<C<A>> t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(FutureOr<C<A>> t1) {}
 
-  ArgumentsBindingClass.named(FutureOr<C<A>> t1, {FutureOr<C<A>> t2}) {}
-  ArgumentsBindingClass.positional(FutureOr<C<A>> t1, [FutureOr<C<A>> t2]) {}
+  ArgumentsBindingClass.named(FutureOr<C<A>> t1, {FutureOr<C<A>> t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(FutureOr<C<A>> t1, [FutureOr<C<A>> t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(FutureOr<C<A>> t1, {FutureOr<C<A>> t2}) {
+  factory ArgumentsBindingClass.fNamed(FutureOr<C<A>> t1, {FutureOr<C<A>> t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(FutureOr<C<A>> t1, [FutureOr<C<A>> t2]) {
+  factory ArgumentsBindingClass.fPositional(FutureOr<C<A>> t1, [FutureOr<C<A>> t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(FutureOr<C<A>> t1, {FutureOr<C<A>> t2}) {}
-  static positionalArgumentsStaticMethod(FutureOr<C<A>> t1, [FutureOr<C<A>> t2]) {}
+  static namedArgumentsStaticMethod(FutureOr<C<A>> t1, {FutureOr<C<A>> t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(FutureOr<C<A>> t1, [FutureOr<C<A>> t2 = t1Default]) {}
 
-  namedArgumentsMethod(FutureOr<C<A>> t1, {FutureOr<C<A>> t2}) {}
-  positionalArgumentsMethod(FutureOr<C<A>> t1, [FutureOr<C<A>> t2]) {}
+  namedArgumentsMethod(FutureOr<C<A>> t1, {FutureOr<C<A>> t2 = t1Default}) {}
+  positionalArgumentsMethod(FutureOr<C<A>> t1, [FutureOr<C<A>> t2 = t1Default]) {}
 
   set testSetter(FutureOr<C<A>> val) {}
 }
@@ -72,18 +75,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -114,18 +112,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<FutureOr<C<A>>>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<FutureOr<C<A>>>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<FutureOr<C<A>>> instance2 = new ArgumentsBindingGen<FutureOr<C<A>>>(t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<C<A>>>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<C<A>>>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<C<A>>>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<C<A>>>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A03_t02.dart
index aca5055..cda955c 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A03_t02.dart
@@ -27,31 +27,35 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   FutureOr<C<A>> m;
 
-  ArgumentsBindingSuper1_t02(FutureOr<C<A>> value) {}
-  ArgumentsBindingSuper1_t02.named(FutureOr<C<A>> value, {FutureOr<C<A>> val2}) {}
-  ArgumentsBindingSuper1_t02.positional(FutureOr<C<A>> value, [FutureOr<C<A>> val2]) {}
+  ArgumentsBindingSuper1_t02(FutureOr<C<A>> value): m = value {}
+  ArgumentsBindingSuper1_t02.named(FutureOr<C<A>> value, {FutureOr<C<A>> val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(FutureOr<C<A>> value, [FutureOr<C<A>> val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(FutureOr<C<A>> val) {}
-  void superTestPositioned(FutureOr<C<A>> val, [FutureOr<C<A>> val2]) {}
-  void superTestNamed(FutureOr<C<A>> val, {FutureOr<C<A>> val2}) {}
+  void superTestPositioned(FutureOr<C<A>> val, [FutureOr<C<A>> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<C<A>> val, {FutureOr<C<A>> val2 = t1Default}) {}
   FutureOr<C<A>> get superGetter => m;
   void set superSetter(FutureOr<C<A>> val) {}
 }
@@ -79,31 +83,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -133,17 +129,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<FutureOr<C<A>>> c2 =
     new ArgumentsBinding2_t02<FutureOr<C<A>>>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<C<A>>>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<C<A>>>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<C<A>>>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<C<A>>>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<C<A>>>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A03_t03.dart
index a8e5a05..1f45229 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A03_t03.dart
@@ -27,26 +27,30 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  FutureOr<C<A>> m;
+  FutureOr<C<A>> m = t1Default;
 
   void superTest(FutureOr<C<A>> val) {}
-  void superTestPositioned(FutureOr<C<A>> val, [FutureOr<C<A>> val2]) {}
-  void superTestNamed(FutureOr<C<A>> val, {FutureOr<C<A>> val2}) {}
+  void superTestPositioned(FutureOr<C<A>> val, [FutureOr<C<A>> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<C<A>> val, {FutureOr<C<A>> val2 = t1Default}) {}
   FutureOr<C<A>> get superGetter => m;
   void set superSetter(FutureOr<C<A>> val) {}
 }
@@ -66,12 +70,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -79,13 +79,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -107,11 +102,7 @@
   ArgumentsBinding2_t03<FutureOr<C<A>>> c2 = new ArgumentsBinding2_t03<FutureOr<C<A>>>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A04_t01.dart
index 0170605..c8e53dd 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A04_t01.dart
@@ -28,44 +28,47 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
 
 
 
-namedArgumentsFunc1(FutureOr<C<A>> t1, {FutureOr<C<A>> t2}) {}
-positionalArgumentsFunc1(FutureOr<C<A>> t1, [FutureOr<C<A>> t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(FutureOr<C<A>> t1, {FutureOr<C<A>> t2 = t1Default}) {}
+positionalArgumentsFunc1(FutureOr<C<A>> t1, [FutureOr<C<A>> t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(FutureOr<C<A>> t1) {}
 
-  ArgumentsBindingClass.named(FutureOr<C<A>> t1, {FutureOr<C<A>> t2}) {}
-  ArgumentsBindingClass.positional(FutureOr<C<A>> t1, [FutureOr<C<A>> t2]) {}
+  ArgumentsBindingClass.named(FutureOr<C<A>> t1, {FutureOr<C<A>> t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(FutureOr<C<A>> t1, [FutureOr<C<A>> t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(FutureOr<C<A>> t1, {FutureOr<C<A>> t2}) {
+  factory ArgumentsBindingClass.fNamed(FutureOr<C<A>> t1, {FutureOr<C<A>> t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(FutureOr<C<A>> t1, [FutureOr<C<A>> t2]) {
+  factory ArgumentsBindingClass.fPositional(FutureOr<C<A>> t1, [FutureOr<C<A>> t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(FutureOr<C<A>> t1, {FutureOr<C<A>> t2}) {}
-  static positionalArgumentsStaticMethod(FutureOr<C<A>> t1, [FutureOr<C<A>> t2]) {}
+  static namedArgumentsStaticMethod(FutureOr<C<A>> t1, {FutureOr<C<A>> t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(FutureOr<C<A>> t1, [FutureOr<C<A>> t2 = t1Default]) {}
 
-  namedArgumentsMethod(FutureOr<C<A>> t1, {FutureOr<C<A>> t2}) {}
-  positionalArgumentsMethod(FutureOr<C<A>> t1, [FutureOr<C<A>> t2]) {}
+  namedArgumentsMethod(FutureOr<C<A>> t1, {FutureOr<C<A>> t2 = t1Default}) {}
+  positionalArgumentsMethod(FutureOr<C<A>> t1, [FutureOr<C<A>> t2 = t1Default]) {}
 
   set testSetter(FutureOr<C<A>> val) {}
 }
@@ -73,18 +76,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -115,18 +113,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<FutureOr<C<A>>>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<FutureOr<C<A>>>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<FutureOr<C<A>>> instance2 = new ArgumentsBindingGen<FutureOr<C<A>>>(t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<C<A>>>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<C<A>>>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<C<A>>>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<C<A>>>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A04_t02.dart
index 753550a..1a2447b 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A04_t02.dart
@@ -28,31 +28,35 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   FutureOr<C<A>> m;
 
-  ArgumentsBindingSuper1_t02(FutureOr<C<A>> value) {}
-  ArgumentsBindingSuper1_t02.named(FutureOr<C<A>> value, {FutureOr<C<A>> val2}) {}
-  ArgumentsBindingSuper1_t02.positional(FutureOr<C<A>> value, [FutureOr<C<A>> val2]) {}
+  ArgumentsBindingSuper1_t02(FutureOr<C<A>> value): m = value {}
+  ArgumentsBindingSuper1_t02.named(FutureOr<C<A>> value, {FutureOr<C<A>> val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(FutureOr<C<A>> value, [FutureOr<C<A>> val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(FutureOr<C<A>> val) {}
-  void superTestPositioned(FutureOr<C<A>> val, [FutureOr<C<A>> val2]) {}
-  void superTestNamed(FutureOr<C<A>> val, {FutureOr<C<A>> val2}) {}
+  void superTestPositioned(FutureOr<C<A>> val, [FutureOr<C<A>> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<C<A>> val, {FutureOr<C<A>> val2 = t1Default}) {}
   FutureOr<C<A>> get superGetter => m;
   void set superSetter(FutureOr<C<A>> val) {}
 }
@@ -80,31 +84,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -134,17 +130,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<FutureOr<C<A>>> c2 =
     new ArgumentsBinding2_t02<FutureOr<C<A>>>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<C<A>>>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<C<A>>>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<C<A>>>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<C<A>>>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<C<A>>>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A04_t03.dart
index 70a13a3..329add8 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_arguments_binding_A04_t03.dart
@@ -28,26 +28,30 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  FutureOr<C<A>> m;
+  FutureOr<C<A>> m = t1Default;
 
   void superTest(FutureOr<C<A>> val) {}
-  void superTestPositioned(FutureOr<C<A>> val, [FutureOr<C<A>> val2]) {}
-  void superTestNamed(FutureOr<C<A>> val, {FutureOr<C<A>> val2}) {}
+  void superTestPositioned(FutureOr<C<A>> val, [FutureOr<C<A>> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<C<A>> val, {FutureOr<C<A>> val2 = t1Default}) {}
   FutureOr<C<A>> get superGetter => m;
   void set superSetter(FutureOr<C<A>> val) {}
 }
@@ -67,12 +71,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -80,13 +80,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -108,11 +103,7 @@
   ArgumentsBinding2_t03<FutureOr<C<A>>> c2 = new ArgumentsBinding2_t03<FutureOr<C<A>>>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A01_t01.dart
index fcee502..acb2e2a 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A01_t01.dart
@@ -27,15 +27,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A01_t02.dart
index 7150b74..34a3b09 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A01_t02.dart
@@ -27,20 +27,24 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  FutureOr<C> m;
+  FutureOr<C> m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A01_t03.dart
index 80d4654..a1f6dee 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A01_t03.dart
@@ -27,20 +27,24 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<C> m;
+  FutureOr<C> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A02_t01.dart
index 7f74098..9117805 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A02_t01.dart
@@ -27,15 +27,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A02_t02.dart
index babe2c8..f51d8fb 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A02_t02.dart
@@ -27,20 +27,24 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  FutureOr<C> m;
+  FutureOr<C> m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A02_t03.dart
index d5f5e5f..064cd7f 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A02_t03.dart
@@ -27,20 +27,24 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<C> m;
+  FutureOr<C> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A03_t01.dart
index 37dcc42..6922953 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A03_t01.dart
@@ -27,17 +27,21 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A03_t02.dart
index 35bafb8..a439bc5 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A03_t02.dart
@@ -27,22 +27,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  FutureOr<C<A>> m;
+  FutureOr<C<A>> m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A03_t03.dart
index 5edb3d4..42ebfec 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A03_t03.dart
@@ -27,22 +27,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<C<A>> m;
+  FutureOr<C<A>> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A04_t01.dart
index 283190d..8625161 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A04_t01.dart
@@ -28,17 +28,21 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A04_t02.dart
index 62b85e1..51af446 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A04_t02.dart
@@ -28,22 +28,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  FutureOr<C<A>> m;
+  FutureOr<C<A>> m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A04_t03.dart
index 70e4f58..540fd54 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_class_member_A04_t03.dart
@@ -28,22 +28,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<C<A>> m;
+  FutureOr<C<A>> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_fail_A02_t01.dart
index 0d0089b..07dee36 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_fail_A02_t01.dart
@@ -29,39 +29,43 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_fail_A03_t01.dart
index ad38dcc..73edec4 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_fail_A03_t01.dart
@@ -29,10 +29,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,30 +47,32 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
 
 
 
-namedArgumentsFunc1(Future<C1> t1, {Future<C1> t2}) {}
-positionalArgumentsFunc1(Future<C1> t1, [Future<C1> t2]) {}
+
+namedArgumentsFunc1(Future<C1> t1, {Future<C1> t2 = t1Default}) {}
+positionalArgumentsFunc1(Future<C1> t1, [Future<C1> t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(Future<C1> t1) {}
 
-    ArgumentsBindingClass.named(Future<C1> t1, {Future<C1> t2}) {}
-    ArgumentsBindingClass.positional(Future<C1> t1, [Future<C1> t2]) {}
+    ArgumentsBindingClass.named(Future<C1> t1, {Future<C1> t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(Future<C1> t1, [Future<C1> t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(Future<C1> t1, {Future<C1> t2}) {
+    factory ArgumentsBindingClass.fNamed(Future<C1> t1, {Future<C1> t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(Future<C1> t1, [Future<C1> t2]) {
+    factory ArgumentsBindingClass.fPositional(Future<C1> t1, [Future<C1> t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(Future<C1> t1, {Future<C1> t2}) {}
-    static positionalArgumentsStaticMethod(Future<C1> t1, [Future<C1> t2]) {}
+    static namedArgumentsStaticMethod(Future<C1> t1, {Future<C1> t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(Future<C1> t1, [Future<C1> t2 = t1Default]) {}
 
-    namedArgumentsMethod(Future<C1> t1, {Future<C1> t2}) {}
-    positionalArgumentsMethod(Future<C1> t1, [Future<C1> t2]) {}
+    namedArgumentsMethod(Future<C1> t1, {Future<C1> t2 = t1Default}) {}
+    positionalArgumentsMethod(Future<C1> t1, [Future<C1> t2 = t1Default]) {}
 
     set testSetter(Future<C1> val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_mixin_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_mixin_fail_A02_t01.dart
index 367d101..7d9a437 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_mixin_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_mixin_fail_A02_t01.dart
@@ -30,22 +30,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_mixin_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_mixin_fail_A03_t01.dart
index 7909ac1..4c7cefc 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_mixin_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_mixin_fail_A03_t01.dart
@@ -30,10 +30,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,13 +48,15 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(Future<C1> val) {}
-  void superTestPositioned(Future<C1> val, [Future<C1> val2]) {}
-  void superTestNamed(Future<C1> val, {Future<C1> val2}) {}
+  void superTestPositioned(Future<C1> val, [Future<C1> val2 = t1Default]) {}
+  void superTestNamed(Future<C1> val, {Future<C1> val2 = t1Default}) {}
   Future<C1> get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(Future<C1> val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_super_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_super_fail_A02_t01.dart
index 077a8f8..d0c8879 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_super_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_super_fail_A02_t01.dart
@@ -30,29 +30,33 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -65,7 +69,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, FutureOr<S0> t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_super_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_super_fail_A03_t01.dart
index d71c012..8fb5edb 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_super_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_arguments_binding_super_fail_A03_t01.dart
@@ -30,10 +30,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,20 +48,22 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   Future<C1> m;
 
-  ArgumentsBindingSuper1_t02(Future<C1> value) {}
-  ArgumentsBindingSuper1_t02.named(Future<C1> value, {Future<C1> val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Future<C1> value, [Future<C1> val2]) {}
+  ArgumentsBindingSuper1_t02(Future<C1> value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Future<C1> value, {Future<C1> val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Future<C1> value, [Future<C1> val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Future<C1> val) {}
-  void superTestPositioned(Future<C1> val, [Future<C1> val2]) {}
-  void superTestNamed(Future<C1> val, {Future<C1> val2}) {}
+  void superTestPositioned(Future<C1> val, [Future<C1> val2 = t1Default]) {}
+  void superTestNamed(Future<C1> val, {Future<C1> val2 = t1Default}) {}
   Future<C1> get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(Future<C1> val) {}
 }
@@ -72,7 +76,7 @@
   ArgumentsBinding1_t02.c4(Future<C1> t1, FutureOr<S0> t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(Future<C1> t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_fail_A02_t01.dart
index 02d4e2b..2dd6457 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_fail_A02_t01.dart
@@ -30,20 +30,24 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(FutureOr<S0> val) {
     s = val; //# 01: compile-time error
@@ -61,7 +65,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(FutureOr<S0> val) {
     m = val; //# 05: compile-time error
@@ -83,7 +87,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(FutureOr<S0> val) {
     _m = val; //# 10: compile-time error
@@ -124,4 +128,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_fail_A03_t01.dart
index 9c01c28..448761d 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_fail_A03_t01.dart
@@ -30,10 +30,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,11 +48,13 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
 class ClassMemberTestStatic {
-  static Future<C1> s;
+  static Future<C1> s = t1Default;
 
   ClassMemberTestStatic(FutureOr<S0> val) {
     s = val; //# 01: compile-time error
@@ -68,7 +72,7 @@
 }
 
 class ClassMemberTestPublic {
-  Future<C1> m;
+  Future<C1> m = t1Default;
 
   ClassMemberTestPublic(FutureOr<S0> val) {
     m = val; //# 05: compile-time error
@@ -90,7 +94,7 @@
 }
 
 class ClassMemberTestPrivate {
-  Future<C1> _m;
+  Future<C1> _m = t1Default;
 
   ClassMemberTestPrivate(FutureOr<S0> val) {
     _m = val; //# 10: compile-time error
@@ -131,4 +135,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_mixin_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_mixin_fail_A02_t01.dart
index 359f05f..82a10bf 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_mixin_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_mixin_fail_A02_t01.dart
@@ -30,20 +30,24 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_mixin_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_mixin_fail_A03_t01.dart
index 55ffc16..1bca99e 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_mixin_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_mixin_fail_A03_t01.dart
@@ -30,10 +30,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,11 +48,13 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  Future<C1> m;
+  Future<C1> m = t1Default;
   void set superSetter(Future<C1> val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_super_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_super_fail_A02_t01.dart
index 86c771c..3a507c1 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_super_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_super_fail_A02_t01.dart
@@ -30,20 +30,24 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(FutureOr<S0> value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_super_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_super_fail_A03_t01.dart
index 6e0443b..4252f0c 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_super_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_class_member_super_fail_A03_t01.dart
@@ -30,10 +30,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,11 +48,13 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Future<C1> m;
+  Future<C1> m = t1Default;
 
   ClassMemberSuper1_t02(FutureOr<S0> value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_global_variable_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_global_variable_fail_A02_t01.dart
index f03a169..6ae0f6d 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_global_variable_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_global_variable_fail_A02_t01.dart
@@ -30,15 +30,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_global_variable_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_global_variable_fail_A03_t01.dart
index c7d540b..50015b6 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_global_variable_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_global_variable_fail_A03_t01.dart
@@ -30,10 +30,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,6 +48,8 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_local_variable_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_local_variable_fail_A02_t01.dart
index 0f16f9f..e54bafb 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_local_variable_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_local_variable_fail_A02_t01.dart
@@ -30,44 +30,43 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_local_variable_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_local_variable_fail_A03_t01.dart
index 3e29cda..a050ec5 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_local_variable_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_local_variable_fail_A03_t01.dart
@@ -30,10 +30,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -46,35 +48,32 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    Future<C1> t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    Future<C1> t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    Future<C1> t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    Future<C1> t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    Future<C1> t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    Future<C1> t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  Future<C1> t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  Future<C1> t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    Future<C1> t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    Future<C1> t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_return_value_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_return_value_fail_A02_t01.dart
index 9b7fd6d..5c7ce75 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_return_value_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_return_value_fail_A02_t01.dart
@@ -29,15 +29,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_return_value_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_return_value_fail_A03_t01.dart
index 4389cad..f83e5d4 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_return_value_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_fail_return_value_fail_A03_t01.dart
@@ -29,10 +29,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,6 +47,8 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A01_t01.dart
index a95583f..00bcbc1 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A01_t01.dart
@@ -27,15 +27,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A02_t01.dart
index 7c1c849..d98f253 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A02_t01.dart
@@ -27,15 +27,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A03_t01.dart
index e133a45..182a885 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A03_t01.dart
@@ -27,17 +27,21 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A04_t01.dart
index ba5676c..03e7177 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_global_variable_A04_t01.dart
@@ -28,17 +28,21 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A01_t01.dart
index fe2fabc..10eb63a 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A01_t01.dart
@@ -27,15 +27,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A02_t01.dart
index 493767b..20ceca0 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A02_t01.dart
@@ -27,15 +27,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A03_t01.dart
index 26c8b4c..f69671a 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A03_t01.dart
@@ -27,17 +27,21 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A04_t01.dart
index 46d8926..d5572c7 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_local_variable_A04_t01.dart
@@ -28,17 +28,21 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A01_t01.dart
index 461b05e..89d9ae7 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A01_t01.dart
@@ -27,15 +27,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A02_t01.dart
index d3b50b5..8a3c1cc 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A02_t01.dart
@@ -27,15 +27,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A03_t01.dart
index 096e665..bf8bba8 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A03_t01.dart
@@ -27,17 +27,21 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A04_t01.dart
index d0abe85..f15af0d 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_FutureOr_return_value_A04_t01.dart
@@ -28,17 +28,21 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t01.dart
index 1688ddb..6673af9 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t01.dart
@@ -32,30 +32,29 @@
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -63,18 +62,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -105,18 +99,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T1>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<T1> instance2 = new ArgumentsBindingGen<T1>(t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t02.dart
index 8abbef8..25434e0 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t02.dart
@@ -35,14 +35,14 @@
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -70,31 +70,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -124,17 +116,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<T1> c2 =
     new ArgumentsBinding2_t02<T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t03.dart
index 3dec242..9080a06 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t03.dart
@@ -33,11 +33,11 @@
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -57,12 +57,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -70,13 +66,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -98,11 +89,7 @@
   ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t01.dart
index 1ec33c3..af997eb 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t01.dart
@@ -33,30 +33,29 @@
 
 
 
-namedArgumentsFunc1(dynamic t1, {dynamic t2}) {}
-positionalArgumentsFunc1(dynamic t1, [dynamic t2]) {}
+namedArgumentsFunc1(dynamic t1, {dynamic t2 = t1Default}) {}
+positionalArgumentsFunc1(dynamic t1, [dynamic t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(dynamic t1) {}
 
-  ArgumentsBindingClass.named(dynamic t1, {dynamic t2}) {}
-  ArgumentsBindingClass.positional(dynamic t1, [dynamic t2]) {}
+  ArgumentsBindingClass.named(dynamic t1, {dynamic t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(dynamic t1, [dynamic t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(dynamic t1, {dynamic t2}) {
+  factory ArgumentsBindingClass.fNamed(dynamic t1, {dynamic t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(dynamic t1, [dynamic t2]) {
+  factory ArgumentsBindingClass.fPositional(dynamic t1, [dynamic t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(dynamic t1, {dynamic t2}) {}
-  static positionalArgumentsStaticMethod(dynamic t1, [dynamic t2]) {}
+  static namedArgumentsStaticMethod(dynamic t1, {dynamic t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(dynamic t1, [dynamic t2 = t1Default]) {}
 
-  namedArgumentsMethod(dynamic t1, {dynamic t2}) {}
-  positionalArgumentsMethod(dynamic t1, [dynamic t2]) {}
+  namedArgumentsMethod(dynamic t1, {dynamic t2 = t1Default}) {}
+  positionalArgumentsMethod(dynamic t1, [dynamic t2 = t1Default]) {}
 
   set testSetter(dynamic val) {}
 }
@@ -64,18 +63,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -106,18 +100,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<dynamic>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<dynamic>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<dynamic> instance2 = new ArgumentsBindingGen<dynamic>(t0Instance);
   instance2 = new ArgumentsBindingGen<dynamic>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<dynamic>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<dynamic>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<dynamic>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t02.dart
index 50aa374..9fdb410 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t02.dart
@@ -36,14 +36,14 @@
 class ArgumentsBindingSuper1_t02 {
   dynamic m;
 
-  ArgumentsBindingSuper1_t02(dynamic value) {}
-  ArgumentsBindingSuper1_t02.named(dynamic value, {dynamic val2}) {}
-  ArgumentsBindingSuper1_t02.positional(dynamic value, [dynamic val2]) {}
+  ArgumentsBindingSuper1_t02(dynamic value): m = value {}
+  ArgumentsBindingSuper1_t02.named(dynamic value, {dynamic val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(dynamic value, [dynamic val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(dynamic val) {}
-  void superTestPositioned(dynamic val, [dynamic val2]) {}
-  void superTestNamed(dynamic val, {dynamic val2}) {}
+  void superTestPositioned(dynamic val, [dynamic val2 = t1Default]) {}
+  void superTestNamed(dynamic val, {dynamic val2 = t1Default}) {}
   dynamic get superGetter => m;
   void set superSetter(dynamic val) {}
 }
@@ -71,31 +71,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -125,17 +117,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<dynamic> c2 =
     new ArgumentsBinding2_t02<dynamic>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<dynamic>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<dynamic>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<dynamic>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<dynamic>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<dynamic>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t03.dart
index 999153d..4e7c977 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t03.dart
@@ -34,11 +34,11 @@
 
 
 class ArgumentsBindingMixin1_t03 {
-  dynamic m;
+  dynamic m = t1Default;
 
   void superTest(dynamic val) {}
-  void superTestPositioned(dynamic val, [dynamic val2]) {}
-  void superTestNamed(dynamic val, {dynamic val2}) {}
+  void superTestPositioned(dynamic val, [dynamic val2 = t1Default]) {}
+  void superTestNamed(dynamic val, {dynamic val2 = t1Default}) {}
   dynamic get superGetter => m;
   void set superSetter(dynamic val) {}
 }
@@ -58,12 +58,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -71,13 +67,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -99,11 +90,7 @@
   ArgumentsBinding2_t03<dynamic> c2 = new ArgumentsBinding2_t03<dynamic>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t02.dart
index 26ff348..659637b 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t02.dart
@@ -33,7 +33,7 @@
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t03.dart
index e4990d6..475e6d7 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t03.dart
@@ -33,7 +33,7 @@
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t02.dart
index 42f7119..5df7ddc 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t02.dart
@@ -34,7 +34,7 @@
 
 
 class ClassMemberSuper1_t02 {
-  dynamic m;
+  dynamic m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t03.dart
index 221e1b3..ec6fd5d 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t03.dart
@@ -34,7 +34,7 @@
 
 
 class ClassMemberMixin1_t03 {
-  dynamic m;
+  dynamic m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A01_t01.dart
index b07f504..4217aeb 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A01_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,33 +35,34 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -67,18 +70,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -115,18 +113,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T1>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<T1> instance2 = new ArgumentsBindingGen<T1>(t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A01_t02.dart
index f1c647e..caa5cf1 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A01_t02.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,20 +35,22 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -74,31 +78,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -134,17 +130,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<T1> c2 =
     new ArgumentsBinding2_t02<T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A01_t03.dart
index 40e61e8..55ac905 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A01_t03.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,15 +35,17 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -61,12 +65,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -74,13 +74,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -108,12 +103,8 @@
   ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 
   }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A02_t01.dart
index 8c20c9f..f193995 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A02_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,33 +35,34 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -67,18 +70,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -113,18 +111,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T1>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<T1> instance2 = new ArgumentsBindingGen<T1>(t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A02_t02.dart
index 023a825..55aeb33 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A02_t02.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,20 +35,22 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -74,31 +78,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -132,17 +128,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<T1> c2 =
     new ArgumentsBinding2_t02<T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A02_t03.dart
index d7c302a..2cf6cc9 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A02_t03.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,15 +35,17 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -61,12 +65,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -74,13 +74,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -106,12 +101,8 @@
   ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 
   }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A03_t01.dart
deleted file mode 100644
index 09ae07c..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A03_t01.dart
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be used as an argument of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A03.dart and 
- * arguments_binding_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
-
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
-
-class ArgumentsBindingClass {
-  ArgumentsBindingClass(T1 t1) {}
-
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
-
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
-    return new ArgumentsBindingClass.named(t1, t2: t2);
-  }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
-    return new ArgumentsBindingClass.positional(t1, t2);
-  }
-
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
-
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
-
-  set testSetter(T1 val) {}
-}
-
-class ArgumentsBindingGen<X>  {
-  ArgumentsBindingGen(X t1) {}
-
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
-
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
-    return new ArgumentsBindingGen.named(t1, t2: t2);
-  }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
-
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
-
-  set testSetter(X val) {}
-}
-
-
-
-main() {
-  X0 t0Instance = new S0();
-
-  if (t0Instance is S0) {
-    
-  // test functions
-  namedArgumentsFunc1(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc1(t0Instance, t0Instance);
-
-  // test class constructors
-  ArgumentsBindingClass instance1 = new ArgumentsBindingClass(t0Instance);
-  instance1 = new ArgumentsBindingClass.fNamed(t0Instance, t2: t0Instance);
-  instance1 = new ArgumentsBindingClass.fPositional(t0Instance, t0Instance);
-  instance1 = new ArgumentsBindingClass.named(t0Instance, t2: t0Instance);
-  instance1 = new ArgumentsBindingClass.positional(t0Instance, t0Instance);
-
-  // tests methods and setters
-  instance1.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance1.positionalArgumentsMethod(t0Instance, t0Instance);
-  instance1.testSetter = t0Instance;
-
-  // test static methods
-  ArgumentsBindingClass.namedArgumentsStaticMethod(t0Instance, t2: t0Instance);
-  ArgumentsBindingClass.positionalArgumentsStaticMethod(t0Instance, t0Instance);
-
-  // Test type parameters
-
-  //# <-- NotGenericFunctionType
-  // test generic functions
-  namedArgumentsFunc2<T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T1>(t0Instance, t0Instance);
-
-  // test generic class constructors
-  ArgumentsBindingGen<T1> instance2 = new ArgumentsBindingGen<T1>(t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fPositional(t0Instance, t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.positional(t0Instance, t0Instance);
-
-  // test generic class methods and setters
-  instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
-  instance2.testSetter = t0Instance;
-  //# -->
-
-  }
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A03_t02.dart
deleted file mode 100644
index f05f861..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A03_t02.dart
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be used as an argument of type T1. Test superclass members
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A03.dart and 
- * arguments_binding_x02.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-class ArgumentsBindingSuper1_t02 {
-  T1 m;
-
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
-  ArgumentsBindingSuper1_t02.short(this.m);
-
-  void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
-  T1 get superGetter => m;
-  void set superSetter(T1 val) {}
-}
-
-class ArgumentsBinding1_t02 extends ArgumentsBindingSuper1_t02 {
-  ArgumentsBinding1_t02(dynamic t1) : super(t1) {}
-  ArgumentsBinding1_t02.c1(dynamic t1) : super.named(t1) {}
-  ArgumentsBinding1_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding1_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding1_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
-  ArgumentsBinding1_t02.c5(dynamic t1) : super.short(t1) {}
-
-  test(dynamic t1, dynamic t2) {
-    superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
-    superTestNamed(t2, val2: t1);
-    superSetter = t1;
-    m = t1;
-    superGetter;
-  }
-}
-
-class ArgumentsBindingSuper2_t02<X> {
-  X m;
-
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
-  ArgumentsBindingSuper2_t02.short(this.m);
-
-  void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
-  void set superSetter(X val) {}
-}
-
-class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
-  ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
-  ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
-  ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
-
-  test(X t1, X t2) {
-    superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
-    superTestNamed(t2, val2: t1);
-    superSetter = t1;
-    m = t1;
-    superGetter;
-  }
-}
-
-
-
-main() {
-  X0 t0Instance = new S0();
-
-  if (t0Instance is S0) {
-    
-  ArgumentsBinding1_t02 c1 = new ArgumentsBinding1_t02(t0Instance);
-  c1 = new ArgumentsBinding1_t02.c1(t0Instance);
-  c1 = new ArgumentsBinding1_t02.c2(t1Instance, t0Instance);
-  c1 = new ArgumentsBinding1_t02.c3(t0Instance);
-  c1 = new ArgumentsBinding1_t02.c4(t1Instance, t0Instance);
-  c1 = new ArgumentsBinding1_t02.c5(t0Instance);
-
-  c1.test(t0Instance, t1Instance);
-  c1.superTest(t0Instance);
-  c1.superTestPositioned(t0Instance);
-  c1.superTestPositioned(t1Instance, t0Instance);
-  c1.superTestNamed(t0Instance);
-  c1.superTestNamed(t1Instance, val2: t0Instance);
-  c1.superSetter = t0Instance;
-  c1.superGetter;
-
-  // Test type parameters
-
-  //# <-- NotGenericFunctionType
-  ArgumentsBinding2_t02<T1> c2 =
-    new ArgumentsBinding2_t02<T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c1(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c4(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c5(t0Instance);
-
-  c2.test(t0Instance, t1Instance);
-  c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
-  c2.superTestNamed(t1Instance, val2: t0Instance);
-  c2.superSetter = t0Instance;
-  c2.superGetter;
-  //# -->
-
-  }
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A03_t03.dart
deleted file mode 100644
index 40251ad..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A03_t03.dart
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be used as an argument of type T1. Test mixin members
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A03.dart and 
- * arguments_binding_x03.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-class ArgumentsBindingMixin1_t03 {
-  T1 m;
-
-  void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
-  T1 get superGetter => m;
-  void set superSetter(T1 val) {}
-}
-
-class ArgumentsBinding1_t03 extends Object with ArgumentsBindingMixin1_t03 {
-
-  test(dynamic t1, dynamic t2) {
-    superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
-    superTestNamed(t2, val2: t1);
-    superSetter = t1;
-    m = t1;
-    superGetter;
-  }
-}
-
-class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
-  void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
-  void set superSetter(X val) {}
-}
-
-class ArgumentsBinding2_t03<X> extends Object with ArgumentsBindingMixin2_t03<X> {
-
-  test(dynamic t1, dynamic t2) {
-    superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
-    superTestNamed(t2, val2: t1);
-    superSetter = t1;
-    m = t1;
-    superGetter;
-  }
-}
-
-
-
-main() {
-  X0 t0Instance = new S0();
-
-  if (t0Instance is S0) {
-    
-  ArgumentsBinding1_t03 c1 = new ArgumentsBinding1_t03();
-
-  c1.test(t0Instance, t1Instance);
-  c1.superTest(t0Instance);
-  c1.superTestPositioned(t0Instance);
-  c1.superTestPositioned(t1Instance, t0Instance);
-  c1.superTestNamed(t0Instance);
-  c1.superTestNamed(t1Instance, val2: t0Instance);
-  c1.superSetter = t0Instance;
-  c1.superGetter;
-
-  // Test type parameters
-
-  //# <-- NotGenericFunctionType
-  ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
-  c2.test(t0Instance, t1Instance);
-  c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
-  c2.superTestNamed(t1Instance, val2: t0Instance);
-  c2.superSetter = t0Instance;
-  c2.superGetter;
-  //# -->
-
-  }
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A04_t01.dart
deleted file mode 100644
index 864804e..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A04_t01.dart
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be used as an argument of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A04.dart and 
- * arguments_binding_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
-
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
-
-class ArgumentsBindingClass {
-  ArgumentsBindingClass(T1 t1) {}
-
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
-
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
-    return new ArgumentsBindingClass.named(t1, t2: t2);
-  }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
-    return new ArgumentsBindingClass.positional(t1, t2);
-  }
-
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
-
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
-
-  set testSetter(T1 val) {}
-}
-
-class ArgumentsBindingGen<X>  {
-  ArgumentsBindingGen(X t1) {}
-
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
-
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
-    return new ArgumentsBindingGen.named(t1, t2: t2);
-  }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
-
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
-
-  set testSetter(X val) {}
-}
-
-
-
-test<T>(T t0Instance) {
-  if (t0Instance is S0) {
-  
-  // test functions
-  namedArgumentsFunc1(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc1(t0Instance, t0Instance);
-
-  // test class constructors
-  ArgumentsBindingClass instance1 = new ArgumentsBindingClass(t0Instance);
-  instance1 = new ArgumentsBindingClass.fNamed(t0Instance, t2: t0Instance);
-  instance1 = new ArgumentsBindingClass.fPositional(t0Instance, t0Instance);
-  instance1 = new ArgumentsBindingClass.named(t0Instance, t2: t0Instance);
-  instance1 = new ArgumentsBindingClass.positional(t0Instance, t0Instance);
-
-  // tests methods and setters
-  instance1.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance1.positionalArgumentsMethod(t0Instance, t0Instance);
-  instance1.testSetter = t0Instance;
-
-  // test static methods
-  ArgumentsBindingClass.namedArgumentsStaticMethod(t0Instance, t2: t0Instance);
-  ArgumentsBindingClass.positionalArgumentsStaticMethod(t0Instance, t0Instance);
-
-  // Test type parameters
-
-  //# <-- NotGenericFunctionType
-  // test generic functions
-  namedArgumentsFunc2<T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T1>(t0Instance, t0Instance);
-
-  // test generic class constructors
-  ArgumentsBindingGen<T1> instance2 = new ArgumentsBindingGen<T1>(t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fPositional(t0Instance, t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.positional(t0Instance, t0Instance);
-
-  // test generic class methods and setters
-  instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
-  instance2.testSetter = t0Instance;
-  //# -->
-
-  }
-}
-
-main() {
-  test<S0>(t0Instance);
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A04_t02.dart
deleted file mode 100644
index 530518e..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A04_t02.dart
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be used as an argument of type T1. Test superclass members
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A04.dart and 
- * arguments_binding_x02.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-class ArgumentsBindingSuper1_t02 {
-  T1 m;
-
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
-  ArgumentsBindingSuper1_t02.short(this.m);
-
-  void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
-  T1 get superGetter => m;
-  void set superSetter(T1 val) {}
-}
-
-class ArgumentsBinding1_t02 extends ArgumentsBindingSuper1_t02 {
-  ArgumentsBinding1_t02(dynamic t1) : super(t1) {}
-  ArgumentsBinding1_t02.c1(dynamic t1) : super.named(t1) {}
-  ArgumentsBinding1_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding1_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding1_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
-  ArgumentsBinding1_t02.c5(dynamic t1) : super.short(t1) {}
-
-  test(dynamic t1, dynamic t2) {
-    superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
-    superTestNamed(t2, val2: t1);
-    superSetter = t1;
-    m = t1;
-    superGetter;
-  }
-}
-
-class ArgumentsBindingSuper2_t02<X> {
-  X m;
-
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
-  ArgumentsBindingSuper2_t02.short(this.m);
-
-  void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
-  void set superSetter(X val) {}
-}
-
-class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
-  ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
-  ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
-  ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
-
-  test(X t1, X t2) {
-    superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
-    superTestNamed(t2, val2: t1);
-    superSetter = t1;
-    m = t1;
-    superGetter;
-  }
-}
-
-
-
-test<T>(T t0Instance) {
-  if (t0Instance is S0) {
-  
-  ArgumentsBinding1_t02 c1 = new ArgumentsBinding1_t02(t0Instance);
-  c1 = new ArgumentsBinding1_t02.c1(t0Instance);
-  c1 = new ArgumentsBinding1_t02.c2(t1Instance, t0Instance);
-  c1 = new ArgumentsBinding1_t02.c3(t0Instance);
-  c1 = new ArgumentsBinding1_t02.c4(t1Instance, t0Instance);
-  c1 = new ArgumentsBinding1_t02.c5(t0Instance);
-
-  c1.test(t0Instance, t1Instance);
-  c1.superTest(t0Instance);
-  c1.superTestPositioned(t0Instance);
-  c1.superTestPositioned(t1Instance, t0Instance);
-  c1.superTestNamed(t0Instance);
-  c1.superTestNamed(t1Instance, val2: t0Instance);
-  c1.superSetter = t0Instance;
-  c1.superGetter;
-
-  // Test type parameters
-
-  //# <-- NotGenericFunctionType
-  ArgumentsBinding2_t02<T1> c2 =
-    new ArgumentsBinding2_t02<T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c1(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c4(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c5(t0Instance);
-
-  c2.test(t0Instance, t1Instance);
-  c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
-  c2.superTestNamed(t1Instance, val2: t0Instance);
-  c2.superSetter = t0Instance;
-  c2.superGetter;
-  //# -->
-
-  }
-}
-
-main() {
-  test<S0>(t0Instance);
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A04_t03.dart
deleted file mode 100644
index f9aab47..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_arguments_binding_A04_t03.dart
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be used as an argument of type T1. Test mixin members
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A04.dart and 
- * arguments_binding_x03.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-class ArgumentsBindingMixin1_t03 {
-  T1 m;
-
-  void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
-  T1 get superGetter => m;
-  void set superSetter(T1 val) {}
-}
-
-class ArgumentsBinding1_t03 extends Object with ArgumentsBindingMixin1_t03 {
-
-  test(dynamic t1, dynamic t2) {
-    superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
-    superTestNamed(t2, val2: t1);
-    superSetter = t1;
-    m = t1;
-    superGetter;
-  }
-}
-
-class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
-  void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
-  void set superSetter(X val) {}
-}
-
-class ArgumentsBinding2_t03<X> extends Object with ArgumentsBindingMixin2_t03<X> {
-
-  test(dynamic t1, dynamic t2) {
-    superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
-    superTestNamed(t2, val2: t1);
-    superSetter = t1;
-    m = t1;
-    superGetter;
-  }
-}
-
-
-
-test<T>(T t0Instance) {
-  if (t0Instance is S0) {
-  
-  ArgumentsBinding1_t03 c1 = new ArgumentsBinding1_t03();
-
-  c1.test(t0Instance, t1Instance);
-  c1.superTest(t0Instance);
-  c1.superTestPositioned(t0Instance);
-  c1.superTestPositioned(t1Instance, t0Instance);
-  c1.superTestNamed(t0Instance);
-  c1.superTestNamed(t1Instance, val2: t0Instance);
-  c1.superSetter = t0Instance;
-  c1.superGetter;
-
-  // Test type parameters
-
-  //# <-- NotGenericFunctionType
-  ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
-  c2.test(t0Instance, t1Instance);
-  c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
-  c2.superTestNamed(t1Instance, val2: t0Instance);
-  c2.superSetter = t0Instance;
-  c2.superGetter;
-  //# -->
-
-  }
-}
-
-main() {
-  test<S0>(t0Instance);
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A01_t01.dart
index b53f207..faac23b 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A01_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,6 +35,8 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A01_t02.dart
index cd92482..d07e1f1 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A01_t02.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,11 +35,13 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A01_t03.dart
index 23aee52..6cdb2a2 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A01_t03.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,11 +35,13 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A02_t01.dart
index f4cef2d..d10e26a 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A02_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,6 +35,8 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A02_t02.dart
index 510dff2..fa9d390 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A02_t02.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,11 +35,13 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A02_t03.dart
index 4098ce9..f086825 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A02_t03.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,11 +35,13 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A03_t01.dart
deleted file mode 100644
index eefe46a..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A03_t01.dart
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be assigned to the class member of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A03.dart and 
- * class_member_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-class ClassMember1_t01 {
-  static T1 s = t0Instance;
-  T1 m = t0Instance;
-  T1 _p = t0Instance;
-
-  ClassMember1_t01() {
-    s = t0Instance;
-    m = t0Instance;
-    _p = t0Instance;
-  }
-
-  ClassMember1_t01.named(T1 value) {
-    s = value;
-    m = value;
-    _p = value;
-  }
-
-  ClassMember1_t01.short(this.m, this._p);
-
-  test() {
-    s = t0Instance;
-    m = t0Instance;
-    _p = t0Instance;
-  }
-
-  set setter(T1 val) {
-    _p = val;
-  }
-
-  T1 get getter => _p;
-
-  static staticTest() {
-    s = t0Instance;
-  }
-
-  static set staticSetter(T1 val) {
-    s = val;
-  }
-
-  static T1 get staticGetter => t0Instance;
-}
-
-
-
-main() {
-  X0 t0Instance = new S0();
-
-  if (t0Instance is S0) {
-    
-  ClassMember1_t01 c1 = new ClassMember1_t01();
-  c1 = new ClassMember1_t01.short(t0Instance,
-      t0Instance);
-  c1 = new ClassMember1_t01.named(t0Instance);
-  c1.m = t0Instance;
-  c1.test();
-  c1.setter = t0Instance;
-  c1.getter;
-
-  ClassMember1_t01.s = t0Instance;
-  ClassMember1_t01.staticTest();
-  ClassMember1_t01.staticSetter = t0Instance;
-  ClassMember1_t01.staticGetter;
-
-  }
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A03_t02.dart
deleted file mode 100644
index 05b2745..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A03_t02.dart
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be assigned to the superclass member of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A03.dart and 
- * class_member_x02.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-class ClassMemberSuper1_t02 {
-  T1 m;
-
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
-  }
-
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
-  }
-
-  ClassMemberSuper1_t02.short(this.m);
-
-  void set superSetter(T1 val) {}
-}
-
-class ClassMember1_t02 extends ClassMemberSuper1_t02 {
-
-  ClassMember1_t02() : super(t0Instance) {}
-
-  ClassMember1_t02.named() : super.named(t0Instance) {}
-
-  ClassMember1_t02.short() : super.short(t0Instance);
-
-  test() {
-    m = t0Instance;
-    superSetter = t0Instance;
-  }
-}
-
-
-
-main() {
-  X0 t0Instance = new S0();
-
-  if (t0Instance is S0) {
-    
-  ClassMember1_t02 c1 = new ClassMember1_t02();
-  c1 = new ClassMember1_t02.short();
-  c1 = new ClassMember1_t02.named();
-  c1.m = t0Instance;
-  c1.test();
-  c1.superSetter = t0Instance;
-
-  }
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A03_t03.dart
deleted file mode 100644
index b2b0ff1..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A03_t03.dart
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be assigned to the mixin member of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A03.dart and 
- * class_member_x03.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-class ClassMemberMixin1_t03 {
-  T1 m;
-
-  void set superSetter(dynamic val) {}
-}
-
-class ClassMember1_t03 extends Object with ClassMemberMixin1_t03 {
-  test() {
-    m = t0Instance;
-    superSetter = t0Instance;
-  }
-}
-
-
-
-main() {
-  X0 t0Instance = new S0();
-
-  if (t0Instance is S0) {
-    
-  ClassMember1_t03 c1 = new ClassMember1_t03();
-  c1.m = t0Instance;
-  c1.test();
-  c1.superSetter = t0Instance;
-
-  }
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A04_t01.dart
deleted file mode 100644
index 9844c77..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A04_t01.dart
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be assigned to the class member of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A04.dart and 
- * class_member_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-class ClassMember1_t01 {
-  static T1 s = t0Instance;
-  T1 m = t0Instance;
-  T1 _p = t0Instance;
-
-  ClassMember1_t01() {
-    s = t0Instance;
-    m = t0Instance;
-    _p = t0Instance;
-  }
-
-  ClassMember1_t01.named(T1 value) {
-    s = value;
-    m = value;
-    _p = value;
-  }
-
-  ClassMember1_t01.short(this.m, this._p);
-
-  test() {
-    s = t0Instance;
-    m = t0Instance;
-    _p = t0Instance;
-  }
-
-  set setter(T1 val) {
-    _p = val;
-  }
-
-  T1 get getter => _p;
-
-  static staticTest() {
-    s = t0Instance;
-  }
-
-  static set staticSetter(T1 val) {
-    s = val;
-  }
-
-  static T1 get staticGetter => t0Instance;
-}
-
-
-
-test<T>(T t0Instance) {
-  if (t0Instance is S0) {
-  
-  ClassMember1_t01 c1 = new ClassMember1_t01();
-  c1 = new ClassMember1_t01.short(t0Instance,
-      t0Instance);
-  c1 = new ClassMember1_t01.named(t0Instance);
-  c1.m = t0Instance;
-  c1.test();
-  c1.setter = t0Instance;
-  c1.getter;
-
-  ClassMember1_t01.s = t0Instance;
-  ClassMember1_t01.staticTest();
-  ClassMember1_t01.staticSetter = t0Instance;
-  ClassMember1_t01.staticGetter;
-
-  }
-}
-
-main() {
-  test<S0>(t0Instance);
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A04_t02.dart
deleted file mode 100644
index a8c3744..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A04_t02.dart
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be assigned to the superclass member of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A04.dart and 
- * class_member_x02.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-class ClassMemberSuper1_t02 {
-  T1 m;
-
-  ClassMemberSuper1_t02(dynamic value) {
-    m = value;
-  }
-
-  ClassMemberSuper1_t02.named(dynamic value) {
-    m = value;
-  }
-
-  ClassMemberSuper1_t02.short(this.m);
-
-  void set superSetter(T1 val) {}
-}
-
-class ClassMember1_t02 extends ClassMemberSuper1_t02 {
-
-  ClassMember1_t02() : super(t0Instance) {}
-
-  ClassMember1_t02.named() : super.named(t0Instance) {}
-
-  ClassMember1_t02.short() : super.short(t0Instance);
-
-  test() {
-    m = t0Instance;
-    superSetter = t0Instance;
-  }
-}
-
-
-
-test<T>(T t0Instance) {
-  if (t0Instance is S0) {
-  
-  ClassMember1_t02 c1 = new ClassMember1_t02();
-  c1 = new ClassMember1_t02.short();
-  c1 = new ClassMember1_t02.named();
-  c1.m = t0Instance;
-  c1.test();
-  c1.superSetter = t0Instance;
-
-  }
-}
-
-main() {
-  test<S0>(t0Instance);
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A04_t03.dart
deleted file mode 100644
index 2c0f402..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_class_member_A04_t03.dart
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be assigned to the mixin member of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A04.dart and 
- * class_member_x03.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-class ClassMemberMixin1_t03 {
-  T1 m;
-
-  void set superSetter(dynamic val) {}
-}
-
-class ClassMember1_t03 extends Object with ClassMemberMixin1_t03 {
-  test() {
-    m = t0Instance;
-    superSetter = t0Instance;
-  }
-}
-
-
-
-test<T>(T t0Instance) {
-  if (t0Instance is S0) {
-  
-  ClassMember1_t03 c1 = new ClassMember1_t03();
-  c1.m = t0Instance;
-  c1.test();
-  c1.superSetter = t0Instance;
-
-  }
-}
-
-main() {
-  test<S0>(t0Instance);
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_global_variable_A01_t01.dart
index 64c85d2..de8f12e 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_global_variable_A01_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,6 +35,8 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_global_variable_A02_t01.dart
index 87ee831..0725fc8 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_global_variable_A02_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,6 +35,8 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_global_variable_A03_t01.dart
deleted file mode 100644
index bb518bc..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_global_variable_A03_t01.dart
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be assigned to the to global variable of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A03.dart and 
- * global_variable_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-class GlobalVariableTest {
-  GlobalVariableTest() {
-    t1Instance = t0Instance;
-  }
-
-  foo() {
-    t1Instance = t0Instance;
-  }
-
-  static test() {
-    t1Instance = t0Instance;
-  }
-}
-
-
-
-main() {
-  X0 t0Instance = new S0();
-
-  if (t0Instance is S0) {
-    
-  bar () {
-    t1Instance = t0Instance;
-  }
-
-  t1Instance = t0Instance;
-  bar();
-  GlobalVariableTest t = new GlobalVariableTest();
-  t.foo();
-  GlobalVariableTest.test();
-
-  }
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_global_variable_A04_t01.dart
deleted file mode 100644
index 7573cfa..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_global_variable_A04_t01.dart
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be assigned to the to global variable of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A04.dart and 
- * global_variable_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-class GlobalVariableTest {
-  GlobalVariableTest() {
-    t1Instance = t0Instance;
-  }
-
-  foo() {
-    t1Instance = t0Instance;
-  }
-
-  static test() {
-    t1Instance = t0Instance;
-  }
-}
-
-
-
-test<T>(T t0Instance) {
-  if (t0Instance is S0) {
-  
-  bar () {
-    t1Instance = t0Instance;
-  }
-
-  t1Instance = t0Instance;
-  bar();
-  GlobalVariableTest t = new GlobalVariableTest();
-  t.foo();
-  GlobalVariableTest.test();
-
-  }
-}
-
-main() {
-  test<S0>(t0Instance);
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_local_variable_A01_t01.dart
index 84eda61..f72075f 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_local_variable_A01_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,6 +35,8 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_local_variable_A02_t01.dart
index 4f54754..8a56ff5 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_local_variable_A02_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,6 +35,8 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_local_variable_A03_t01.dart
deleted file mode 100644
index ec00ead..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_local_variable_A03_t01.dart
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be assigned to the to local variable of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A03.dart and 
- * local_variable_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-class LocalVariableTest {
-
-  LocalVariableTest() {
-    T1 t1 = t0Instance;
-    t1 = t0Instance;
-  }
-
-  static staticTest() {
-    T1 t1 = t0Instance;
-    t1 = t0Instance;
-  }
-
-  test() {
-    T1 t1 = t0Instance;
-    t1 = t0Instance;
-  }
-}
-
-
-
-main() {
-  X0 t0Instance = new S0();
-
-  if (t0Instance is S0) {
-    
-  foo() {
-    T1 t1 = t0Instance;
-    t1 = t0Instance;
-  }
-
-  T1 t1 = t0Instance;
-  t1 = t0Instance;
-  foo();
-  LocalVariableTest x = new LocalVariableTest();
-  x.test();
-  LocalVariableTest.staticTest();
-
-  }
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_local_variable_A04_t01.dart
deleted file mode 100644
index ab78335..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_local_variable_A04_t01.dart
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be assigned to the to local variable of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A04.dart and 
- * local_variable_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-class LocalVariableTest {
-
-  LocalVariableTest() {
-    T1 t1 = t0Instance;
-    t1 = t0Instance;
-  }
-
-  static staticTest() {
-    T1 t1 = t0Instance;
-    t1 = t0Instance;
-  }
-
-  test() {
-    T1 t1 = t0Instance;
-    t1 = t0Instance;
-  }
-}
-
-
-
-test<T>(T t0Instance) {
-  if (t0Instance is S0) {
-  
-  foo() {
-    T1 t1 = t0Instance;
-    t1 = t0Instance;
-  }
-
-  T1 t1 = t0Instance;
-  t1 = t0Instance;
-  foo();
-  LocalVariableTest x = new LocalVariableTest();
-  x.test();
-  LocalVariableTest.staticTest();
-
-  }
-}
-
-main() {
-  test<S0>(t0Instance);
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_return_value_A01_t01.dart
index d63730e..e4cc878 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_return_value_A01_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,6 +35,8 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_return_value_A02_t01.dart
index 961334d..3cf056c 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_return_value_A02_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -33,6 +35,8 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_return_value_A03_t01.dart
deleted file mode 100644
index 0f6345a..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_return_value_A03_t01.dart
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be used as a return value of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A03.dart and 
- * return_value_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-T1 returnValueFunc() => t0Instance;
-
-class ReturnValueTest {
-  static T1 staticTestMethod() => t0Instance;
-
-  T1 testMethod() => t0Instance;
-
-  T1 get testGetter => t0Instance;
-}
-
-
-
-main() {
-  X0 t0Instance = new S0();
-
-  if (t0Instance is S0) {
-    
-  T1 returnValueLocalFunc() => t0Instance;
-
-  returnValueFunc();
-  returnValueLocalFunc();
-
-  ReturnValueTest.staticTestMethod();
-
-  new ReturnValueTest().testMethod();
-  new ReturnValueTest().testGetter;
-
-
-  }
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_return_value_A04_t01.dart
deleted file mode 100644
index d4169e5..0000000
--- a/LanguageFeatures/Subtyping/static/generated/left_promoted_variable_return_value_A04_t01.dart
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-/**
- * @description Check that if type T0 is a subtype of a type T1, then instance
- * of T0 can be be used as a return value of type T1
- * @author sgrekhov@unipro.ru
- */
-/*
- * This test is generated from left_promoted_variable_A04.dart and 
- * return_value_x01.dart.
- * Don't modify it. If you want to change this file, change one of the files 
- * above and then run generator.dart to regenerate the tests.
- */
-
-
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-
-
-
-T1 returnValueFunc() => t0Instance;
-
-class ReturnValueTest {
-  static T1 staticTestMethod() => t0Instance;
-
-  T1 testMethod() => t0Instance;
-
-  T1 get testGetter => t0Instance;
-}
-
-
-
-test<T>(T t0Instance) {
-  if (t0Instance is S0) {
-  
-  T1 returnValueLocalFunc() => t0Instance;
-
-  returnValueFunc();
-  returnValueLocalFunc();
-
-  ReturnValueTest.staticTestMethod();
-
-  new ReturnValueTest().testMethod();
-  new ReturnValueTest().testGetter;
-
-
-  }
-}
-
-main() {
-  test<S0>(t0Instance);
-}
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t01.dart
index 9b738e4..dbc20c5 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t01.dart
@@ -26,38 +26,41 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
 
 
 
-namedArgumentsFunc1(Object? t1, {Object? t2}) {}
-positionalArgumentsFunc1(Object? t1, [Object? t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(Object? t1, {Object? t2 = t1Default}) {}
+positionalArgumentsFunc1(Object? t1, [Object? t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Object? t1) {}
 
-  ArgumentsBindingClass.named(Object? t1, {Object? t2}) {}
-  ArgumentsBindingClass.positional(Object? t1, [Object? t2]) {}
+  ArgumentsBindingClass.named(Object? t1, {Object? t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Object? t1, [Object? t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Object? t1, {Object? t2}) {
+  factory ArgumentsBindingClass.fNamed(Object? t1, {Object? t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Object? t1, [Object? t2]) {
+  factory ArgumentsBindingClass.fPositional(Object? t1, [Object? t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Object? t1, {Object? t2}) {}
-  static positionalArgumentsStaticMethod(Object? t1, [Object? t2]) {}
+  static namedArgumentsStaticMethod(Object? t1, {Object? t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Object? t1, [Object? t2 = t1Default]) {}
 
-  namedArgumentsMethod(Object? t1, {Object? t2}) {}
-  positionalArgumentsMethod(Object? t1, [Object? t2]) {}
+  namedArgumentsMethod(Object? t1, {Object? t2 = t1Default}) {}
+  positionalArgumentsMethod(Object? t1, [Object? t2 = t1Default]) {}
 
   set testSetter(Object? val) {}
 }
@@ -65,18 +68,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -107,18 +105,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Object?>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Object?>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Object?> instance2 = new ArgumentsBindingGen<Object?>(t0Instance);
   instance2 = new ArgumentsBindingGen<Object?>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object?>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Object?>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object?>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t02.dart
index 05f78b9..6c51d5a 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t02.dart
@@ -26,25 +26,29 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   Object? m;
 
-  ArgumentsBindingSuper1_t02(Object? value) {}
-  ArgumentsBindingSuper1_t02.named(Object? value, {Object? val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object? value, [Object? val2]) {}
+  ArgumentsBindingSuper1_t02(Object? value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object? value, {Object? val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object? value, [Object? val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object? val) {}
-  void superTestPositioned(Object? val, [Object? val2]) {}
-  void superTestNamed(Object? val, {Object? val2}) {}
+  void superTestPositioned(Object? val, [Object? val2 = t1Default]) {}
+  void superTestNamed(Object? val, {Object? val2 = t1Default}) {}
   Object? get superGetter => m;
   void set superSetter(Object? val) {}
 }
@@ -72,31 +76,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -126,17 +122,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Object?> c2 =
     new ArgumentsBinding2_t02<Object?>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object?>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Object?>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object?>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object?>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Object?>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t03.dart
index b5a591d..4ddf308 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t03.dart
@@ -26,20 +26,24 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Object? m;
+  Object? m = t1Default;
 
   void superTest(Object? val) {}
-  void superTestPositioned(Object? val, [Object? val2]) {}
-  void superTestNamed(Object? val, {Object? val2}) {}
+  void superTestPositioned(Object? val, [Object? val2 = t1Default]) {}
+  void superTestNamed(Object? val, {Object? val2 = t1Default}) {}
   Object? get superGetter => m;
   void set superSetter(Object? val) {}
 }
@@ -59,12 +63,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -72,13 +72,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -100,11 +95,7 @@
   ArgumentsBinding2_t03<Object?> c2 = new ArgumentsBinding2_t03<Object?>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A02_t01.dart
index 4de2d4c..329d541 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A02_t01.dart
@@ -26,38 +26,41 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
 
 
 
-namedArgumentsFunc1(Object? t1, {Object? t2}) {}
-positionalArgumentsFunc1(Object? t1, [Object? t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(Object? t1, {Object? t2 = t1Default}) {}
+positionalArgumentsFunc1(Object? t1, [Object? t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Object? t1) {}
 
-  ArgumentsBindingClass.named(Object? t1, {Object? t2}) {}
-  ArgumentsBindingClass.positional(Object? t1, [Object? t2]) {}
+  ArgumentsBindingClass.named(Object? t1, {Object? t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Object? t1, [Object? t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Object? t1, {Object? t2}) {
+  factory ArgumentsBindingClass.fNamed(Object? t1, {Object? t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Object? t1, [Object? t2]) {
+  factory ArgumentsBindingClass.fPositional(Object? t1, [Object? t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Object? t1, {Object? t2}) {}
-  static positionalArgumentsStaticMethod(Object? t1, [Object? t2]) {}
+  static namedArgumentsStaticMethod(Object? t1, {Object? t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Object? t1, [Object? t2 = t1Default]) {}
 
-  namedArgumentsMethod(Object? t1, {Object? t2}) {}
-  positionalArgumentsMethod(Object? t1, [Object? t2]) {}
+  namedArgumentsMethod(Object? t1, {Object? t2 = t1Default}) {}
+  positionalArgumentsMethod(Object? t1, [Object? t2 = t1Default]) {}
 
   set testSetter(Object? val) {}
 }
@@ -65,18 +68,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -107,18 +105,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Object?>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Object?>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Object?> instance2 = new ArgumentsBindingGen<Object?>(t0Instance);
   instance2 = new ArgumentsBindingGen<Object?>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object?>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Object?>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object?>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A02_t02.dart
index f623eaa..a7e9b17 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A02_t02.dart
@@ -26,25 +26,29 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   Object? m;
 
-  ArgumentsBindingSuper1_t02(Object? value) {}
-  ArgumentsBindingSuper1_t02.named(Object? value, {Object? val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object? value, [Object? val2]) {}
+  ArgumentsBindingSuper1_t02(Object? value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object? value, {Object? val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object? value, [Object? val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object? val) {}
-  void superTestPositioned(Object? val, [Object? val2]) {}
-  void superTestNamed(Object? val, {Object? val2}) {}
+  void superTestPositioned(Object? val, [Object? val2 = t1Default]) {}
+  void superTestNamed(Object? val, {Object? val2 = t1Default}) {}
   Object? get superGetter => m;
   void set superSetter(Object? val) {}
 }
@@ -72,31 +76,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -126,17 +122,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Object?> c2 =
     new ArgumentsBinding2_t02<Object?>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object?>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Object?>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object?>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object?>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Object?>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A02_t03.dart
index c6b7a87..4d3c05b 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A02_t03.dart
@@ -26,20 +26,24 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Object? m;
+  Object? m = t1Default;
 
   void superTest(Object? val) {}
-  void superTestPositioned(Object? val, [Object? val2]) {}
-  void superTestNamed(Object? val, {Object? val2}) {}
+  void superTestPositioned(Object? val, [Object? val2 = t1Default]) {}
+  void superTestNamed(Object? val, {Object? val2 = t1Default}) {}
   Object? get superGetter => m;
   void set superSetter(Object? val) {}
 }
@@ -59,12 +63,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -72,13 +72,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -100,11 +95,7 @@
   ArgumentsBinding2_t03<Object?> c2 = new ArgumentsBinding2_t03<Object?>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t01.dart
index 858db98..77b77aa 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t01.dart
@@ -26,11 +26,15 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t02.dart
index a194fc1..9179f97 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t02.dart
@@ -26,16 +26,20 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Object? m;
+  Object? m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t03.dart
index d181500..717eb67 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t03.dart
@@ -26,16 +26,20 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Object? m;
+  Object? m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A02_t01.dart
index 78b6b4e..ad64aee 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A02_t01.dart
@@ -26,11 +26,15 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A02_t02.dart
index f5aa3ac..07001d0 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A02_t02.dart
@@ -26,16 +26,20 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Object? m;
+  Object? m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A02_t03.dart
index 39fbb03..8b92628 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A02_t03.dart
@@ -26,16 +26,20 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Object? m;
+  Object? m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_global_variable_A01_t01.dart
index e35ab1c..51ddaaf 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_global_variable_A01_t01.dart
@@ -26,11 +26,15 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_global_variable_A02_t01.dart
index 841ad6d..71d0c6b 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_global_variable_A02_t01.dart
@@ -26,11 +26,15 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_local_variable_A01_t01.dart
index 753eb68..23aafd1 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_local_variable_A01_t01.dart
@@ -26,11 +26,15 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_local_variable_A02_t01.dart
index 8c8d752..d97d8c7 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_local_variable_A02_t01.dart
@@ -26,11 +26,15 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_return_value_A01_t01.dart
index 54ad7a3..675c801 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_return_value_A01_t01.dart
@@ -26,11 +26,15 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_top_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_return_value_A02_t01.dart
index 406fb85..ab9b416 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_top_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_return_value_A02_t01.dart
@@ -26,11 +26,15 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_arguments_binding_A01_t01.dart
index 69613f7..25bb037 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_arguments_binding_A01_t01.dart
@@ -25,41 +25,44 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -67,18 +70,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -109,18 +107,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T1>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<T1> instance2 = new ArgumentsBindingGen<T1>(t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_arguments_binding_A01_t02.dart
index f34d740..2c85c8c 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_arguments_binding_A01_t02.dart
@@ -25,28 +25,32 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -74,31 +78,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -128,17 +124,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<T1> c2 =
     new ArgumentsBinding2_t02<T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_arguments_binding_A01_t03.dart
index 297e997..0c9b4a5 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_arguments_binding_A01_t03.dart
@@ -25,23 +25,27 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -61,12 +65,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -74,13 +74,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -102,11 +97,7 @@
   ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_class_member_A01_t01.dart
index 4723fe2..82b1a3c 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_class_member_A01_t01.dart
@@ -25,14 +25,18 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_class_member_A01_t02.dart
index b7e0741..b4789fb 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_class_member_A01_t02.dart
@@ -25,19 +25,23 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_class_member_A01_t03.dart
index 1b37128..ceb8644 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_class_member_A01_t03.dart
@@ -25,19 +25,23 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t01.dart
index ba7d49b..ec3d9e0 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_arguments_binding_fail_A01_t01.dart
@@ -27,38 +27,42 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_arguments_binding_mixin_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_arguments_binding_mixin_fail_A01_t01.dart
index b139f1f..13521c5 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_arguments_binding_mixin_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_arguments_binding_mixin_fail_A01_t01.dart
@@ -28,21 +28,25 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_arguments_binding_super_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_arguments_binding_super_fail_A01_t01.dart
index eec0a95..1dcdc74 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_arguments_binding_super_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_arguments_binding_super_fail_A01_t01.dart
@@ -28,28 +28,32 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -62,7 +66,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, X0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_class_member_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_class_member_fail_A01_t01.dart
index b1c4330..bd832d7 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_class_member_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_class_member_fail_A01_t01.dart
@@ -28,19 +28,23 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(X0 val) {
     s = val; //# 01: compile-time error
@@ -58,7 +62,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(X0 val) {
     m = val; //# 05: compile-time error
@@ -80,7 +84,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(X0 val) {
     _m = val; //# 10: compile-time error
@@ -121,4 +125,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_class_member_mixin_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_class_member_mixin_fail_A01_t01.dart
index 65b3176..19cc990 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_class_member_mixin_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_class_member_mixin_fail_A01_t01.dart
@@ -28,19 +28,23 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_class_member_super_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_class_member_super_fail_A01_t01.dart
index 40ac9e4..93d5982 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_class_member_super_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_class_member_super_fail_A01_t01.dart
@@ -28,19 +28,23 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(X0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_global_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_global_variable_fail_A01_t01.dart
index fd45c90..71e0d2b 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_global_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_global_variable_fail_A01_t01.dart
@@ -28,14 +28,18 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_local_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_local_variable_fail_A01_t01.dart
index f3a7bd4..3ccebbe 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_local_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_local_variable_fail_A01_t01.dart
@@ -28,43 +28,42 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_return_value_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_return_value_fail_A01_t01.dart
index d34a755..0f5021e 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_return_value_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_fail_return_value_fail_A01_t01.dart
@@ -27,14 +27,18 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_global_variable_A01_t01.dart
index 15e748c..df2cd70 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_global_variable_A01_t01.dart
@@ -25,14 +25,18 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_local_variable_A01_t01.dart
index ba6f3be..d9bd3cb 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_local_variable_A01_t01.dart
@@ -25,14 +25,18 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_return_value_A01_t01.dart
index 39abcdf..ee6c8dd 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_type_variable_bound_return_value_A01_t01.dart
@@ -25,14 +25,18 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A01_t01.dart
index 4902e8e..f94c8da 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A01_t01.dart
@@ -33,6 +33,7 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -46,41 +47,43 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -88,18 +91,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -130,18 +128,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T1>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<T1> instance2 = new ArgumentsBindingGen<T1>(t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A01_t02.dart
index 00bd4d6..051fed7 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A01_t02.dart
@@ -33,6 +33,7 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -46,28 +47,31 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -95,31 +99,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -149,17 +145,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<T1> c2 =
     new ArgumentsBinding2_t02<T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A01_t03.dart
index 684d219..f2833ad 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A01_t03.dart
@@ -33,6 +33,7 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -46,23 +47,26 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -82,12 +86,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -95,13 +95,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -123,11 +118,7 @@
   ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A02_t01.dart
index dd3af81..d898a0a 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A02_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,49 +74,51 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -124,18 +126,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A02_t02.dart
index 45d13f0..48c1afe 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A02_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,36 +74,39 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -131,31 +134,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A02_t03.dart
index 1ce24a2..fe70ebf 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A02_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,31 +74,34 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -118,12 +121,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -131,13 +130,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A03_t01.dart
index 363dca8..3a5b39a 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A03_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,49 +74,51 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -124,18 +126,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A03_t02.dart
index 177a539..3da2206 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A03_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,36 +74,39 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -131,31 +134,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A03_t03.dart
index d3d48f4..86ba2ed 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A03_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,31 +74,34 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -118,12 +121,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -131,13 +130,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A04_t01.dart
index 182ab7e..7f07d65 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A04_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,49 +74,51 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -124,18 +126,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A04_t02.dart
index 70ee0d6..316cf00 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A04_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,36 +74,39 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -131,31 +134,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A04_t03.dart
index 2599690..fd2b540 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A04_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,31 +74,34 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -118,12 +121,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -131,13 +130,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A05_t01.dart
index bd3b99f..ab3096a 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A05_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,49 +56,51 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -106,18 +108,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A05_t02.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A05_t02.dart
index 4ba80ad..c145c80 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A05_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,36 +56,39 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -113,31 +116,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A05_t03.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A05_t03.dart
index 9806b71..a435dee 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_arguments_binding_A05_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,31 +56,34 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -100,12 +103,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -113,13 +112,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A01_t01.dart
index b991dfb..565b988 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A01_t01.dart
@@ -33,6 +33,7 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -46,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A01_t02.dart
index 3495982..a8d3ab4 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A01_t02.dart
@@ -33,6 +33,7 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -46,19 +47,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A01_t03.dart
index bc6f0c3..bab43ef 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A01_t03.dart
@@ -33,6 +33,7 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -46,19 +47,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A02_t01.dart
index d25c98d..8f254e0 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A02_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A02_t02.dart
index 942fd50..28c753b 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A02_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A02_t03.dart
index c849225..295e1f2 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A02_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A03_t01.dart
index 4cd5c6d..ce82dfa 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A03_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A03_t02.dart
index 131fb90..67e4854 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A03_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A03_t03.dart
index 1721913..6e238cf 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A03_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A04_t01.dart
index 6d24cdf..625ef57 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A04_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A04_t02.dart
index 65ea613..a7cde71 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A04_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,30 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A04_t03.dart
index e3ea599..c86dd4f 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A04_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,30 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A05_t01.dart
index d3c92a6..8359e7e 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A05_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,23 +56,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A05_t02.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A05_t02.dart
index 61ccd3a..1db04dc 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A05_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,27 +56,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A05_t03.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A05_t03.dart
index eb3153e..3ad41e9 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_class_member_A05_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,27 +56,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A11_t01.dart
index 110c6ba..f12e22c 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A11_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,38 +48,41 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A12_t01.dart
index 58e4902..56f880b 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A12_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -57,38 +57,41 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A21_t01.dart
index 6900a5d..1f6e7a9 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A21_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A22_t01.dart
index 2131ba3..9adca80 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A22_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,46 +77,49 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A23_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A23_t01.dart
index cbfff62..9fb651b 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A23_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A31_t01.dart
index f5ff2ea..b538c89 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A31_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,39 +49,42 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A32_t01.dart
index fd7ac24..445a3e4 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A32_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,46 +77,49 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A33_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A33_t01.dart
index 8d1cd1f..6b32d64 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A33_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,46 +59,49 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A41_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A41_t01.dart
index d978e3d..e0ddc55 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A41_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -48,39 +48,41 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A42_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A42_t01.dart
index ff0672d..fe6a756 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A42_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,46 +74,49 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A43_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A43_t01.dart
index 5a0d5de..2cb9148 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A43_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,46 +58,49 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A51_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A51_t01.dart
index 4f6fb96..e93dd86 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A51_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A51_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -55,38 +55,41 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A52_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A52_t01.dart
index 1513201..c9e194d 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A52_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A52_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,46 +74,49 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A53_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A53_t01.dart
index 17c0ecf..1c711ae 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A53_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_fail_A53_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,46 +58,49 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A11_t01.dart
index 757bc44..a26c7b7 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A11_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,21 +49,24 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A12_t01.dart
index 1853ca9..ba8a84b 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A12_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -58,21 +58,24 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A21_t01.dart
index f8ac3cc..cf017c5 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A21_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A22_t01.dart
index 781e810..2ada25f 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A22_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,29 +78,32 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A23_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A23_t01.dart
index b261dea..ef5ffdc 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A23_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A31_t01.dart
index 66c1e52..3b7cbc9 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A31_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -50,22 +50,25 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A32_t01.dart
index 72caaa5..e8a2f98 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A32_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,29 +78,32 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A33_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A33_t01.dart
index 4027791..35fb0ef 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A33_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -60,29 +60,32 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A41_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A41_t01.dart
index 779092a..c4e2ab4 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A41_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,22 +49,24 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A42_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A42_t01.dart
index 8e4e0d2..b550eb2 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A42_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,29 +75,32 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A43_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A43_t01.dart
index 8d64966..80b8d77 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A43_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,29 +59,32 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A51_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A51_t01.dart
index 4ea656f..e407388 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A51_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A51_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -56,21 +56,24 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A52_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A52_t01.dart
index 060c82c..d7de758 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A52_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A52_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,29 +75,32 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A53_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A53_t01.dart
index 0c37826..e5c616a 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A53_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_mixin_fail_A53_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,29 +59,32 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A11_t01.dart
index 11c4cee..98cc0b9 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A11_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,28 +49,31 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -83,7 +86,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A12_t01.dart
index 4c7b4fe..a739d17 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A12_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -58,28 +58,31 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -92,7 +95,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A21_t01.dart
index 8584e38..e919042 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A21_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A22_t01.dart
index bb64740..449e404 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A22_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,36 +78,39 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -120,7 +123,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A23_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A23_t01.dart
index c9d48fd..d58e853 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A23_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A31_t01.dart
index 07cc35e..ce420ae 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A31_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -50,29 +50,32 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -85,7 +88,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A32_t01.dart
index 0b68d56..e313f41 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A32_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,36 +78,39 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -120,7 +123,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A33_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A33_t01.dart
index 0ab7750..4fc5bca 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A33_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -60,36 +60,39 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -102,7 +105,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A41_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A41_t01.dart
index 7bcbbe6..5b1b280 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A41_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,29 +49,31 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -84,7 +86,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A42_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A42_t01.dart
index 0ec2e29..4c8381c 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A42_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,36 +75,39 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -117,7 +120,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A43_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A43_t01.dart
index 3cfd035..b95562b 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A43_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,36 +59,39 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -101,7 +104,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A51_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A51_t01.dart
index 762e252..931eda4 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A51_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A51_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -56,28 +56,31 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -90,7 +93,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A52_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A52_t01.dart
index e40d717..a1a5167 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A52_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A52_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,36 +75,39 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -117,7 +120,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A53_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A53_t01.dart
index 557222c..fbfbb12 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A53_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_arguments_binding_super_fail_A53_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,36 +59,39 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -101,7 +104,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A11_t01.dart
index 3217e9f..1d76184 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A11_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,19 +49,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -79,7 +82,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -101,7 +104,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -142,4 +145,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A12_t01.dart
index 0c699c6..822fbd3 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A12_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -58,19 +58,22 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -88,7 +91,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -110,7 +113,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -152,4 +155,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A21_t01.dart
index 0149388..8e98a0c 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A21_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A22_t01.dart
index c902353..bb7c166 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A22_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,27 +78,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -116,7 +119,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -138,7 +141,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -180,4 +183,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A23_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A23_t01.dart
index acf7494..ea6918f 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A23_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A31_t01.dart
index dbc6a3c..b6ecc56 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A31_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -50,20 +50,23 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -81,7 +84,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -103,7 +106,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -144,4 +147,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A32_t01.dart
index b0f61a2..22dc0ed 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A32_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,27 +78,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -116,7 +119,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -138,7 +141,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -180,4 +183,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A33_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A33_t01.dart
index 2b405f9..8119192 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A33_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -60,27 +60,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -98,7 +101,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -120,7 +123,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -162,4 +165,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A41_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A41_t01.dart
index d3bf73f..34ebfdc 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A41_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,20 +49,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -80,7 +82,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -102,7 +104,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -143,4 +145,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A42_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A42_t01.dart
index 829dafc..1e6ee50 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A42_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,27 +75,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -113,7 +116,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -135,7 +138,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -177,4 +180,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A43_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A43_t01.dart
index 04782de..f01b280 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A43_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,27 +59,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -97,7 +100,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -119,7 +122,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -161,4 +164,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A51_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A51_t01.dart
index 2d1daad..cbba9a4 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A51_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A51_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -56,19 +56,22 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -86,7 +89,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -108,7 +111,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -150,4 +153,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A52_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A52_t01.dart
index 0d07400..4ad28d7 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A52_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A52_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,27 +75,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -113,7 +116,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -135,7 +138,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -177,4 +180,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A53_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A53_t01.dart
index b8d4ee5..9f0e519 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A53_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_fail_A53_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,27 +59,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -97,7 +100,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -119,7 +122,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -161,4 +164,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A11_t01.dart
index 9ddb92b..5bbe634 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A11_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,19 +49,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A12_t01.dart
index 4605373..7ebd7e0 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A12_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -58,19 +58,22 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A21_t01.dart
index 1ebbcf1..043b102 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A21_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A22_t01.dart
index 02606c2..c5eb6c7 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A22_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,27 +78,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A23_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A23_t01.dart
index 6493931..1cde69d 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A23_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A31_t01.dart
index 8c385fe..4820b02 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A31_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -50,20 +50,23 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A32_t01.dart
index 03dde98..fe5ca87 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A32_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,27 +78,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A33_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A33_t01.dart
index c2b6ece..f8350dc 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A33_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -60,27 +60,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A41_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A41_t01.dart
index 8397479..884a485 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A41_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,20 +49,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A42_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A42_t01.dart
index ae8834c..0e195f5 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A42_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,27 +75,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A43_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A43_t01.dart
index 142a060..44b1bb7 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A43_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,27 +59,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A51_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A51_t01.dart
index 372cc8a..d3b4d93 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A51_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A51_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -56,19 +56,22 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A52_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A52_t01.dart
index 6da0e5d..0583bb2 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A52_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A52_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,27 +75,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A53_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A53_t01.dart
index b304a78..bf6ed81 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A53_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_mixin_fail_A53_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,27 +59,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A11_t01.dart
index c143b7f..b30111a 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A11_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,19 +49,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A12_t01.dart
index 8342e5c..03d4fc5 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A12_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -58,19 +58,22 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A21_t01.dart
index 4d91a7b..b56ea0e 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A21_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A22_t01.dart
index 72a0b4c..35c9aa8 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A22_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,27 +78,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A23_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A23_t01.dart
index 85615ed..419ad6a 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A23_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A31_t01.dart
index af298d5..1260624 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A31_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -50,20 +50,23 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A32_t01.dart
index f2ba25a..67dc493 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A32_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,27 +78,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A33_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A33_t01.dart
index 70c1ac8..0e0bf71 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A33_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -60,27 +60,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A41_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A41_t01.dart
index 7282b4b..bd191c7 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A41_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,20 +49,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A42_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A42_t01.dart
index 283d10e..7ecef4b 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A42_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,27 +75,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A43_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A43_t01.dart
index 50f92da..9a55018 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A43_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,27 +59,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A51_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A51_t01.dart
index 73a4d4e..00f5bc7 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A51_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A51_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -56,19 +56,22 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A52_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A52_t01.dart
index 016d683..e0c2a2d 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A52_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A52_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,27 +75,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A53_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A53_t01.dart
index fe71011..65bbfcb 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A53_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_class_member_super_fail_A53_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,27 +59,30 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A11_t01.dart
index a5a918b..c7a5e68 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A11_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,15 +49,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A12_t01.dart
index 4bfc88b..39829cb 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A12_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -58,15 +58,18 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A21_t01.dart
index 291b080..92a6a0e 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A21_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A22_t01.dart
index 46b0228..7e2d8e7 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A22_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A23_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A23_t01.dart
index 1b2bc71..63c355e 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A23_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A31_t01.dart
index 6eb85d2..1cf0b4d 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A31_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -50,15 +50,18 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A32_t01.dart
index a190a0e..d18d69f 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A32_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,23 +78,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A33_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A33_t01.dart
index fbfedff..9fa856b 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A33_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -60,23 +60,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A41_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A41_t01.dart
index a8f9a25..72fb6b2 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A41_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,15 +49,17 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A42_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A42_t01.dart
index 61f8089..08e72f8 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A42_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A43_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A43_t01.dart
index 84174f9..67f36fc 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A43_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,23 +59,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A51_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A51_t01.dart
index e1b02e4..1360c65 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A51_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A51_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -56,15 +56,18 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A52_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A52_t01.dart
index bf8919f..f0a31f7 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A52_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A52_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,23 +75,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A53_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A53_t01.dart
index b1e66d8..8d157af 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A53_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_global_variable_fail_A53_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,23 +59,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A11_t01.dart
index 314b967..2916cf1 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A11_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,43 +49,41 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A12_t01.dart
index a9c1a4e..ba6d758 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A12_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -58,43 +58,41 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A21_t01.dart
index f3efa81..f2692fd 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A21_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A22_t01.dart
index 8ec1847..1b70c7f 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A22_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,51 +78,49 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A23_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A23_t01.dart
index 4e2bc3e..fffb513 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A23_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A31_t01.dart
index 0c36e82..637c609 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A31_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -50,44 +50,42 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A32_t01.dart
index b3b1691..d9f7dbe 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A32_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -78,51 +78,49 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A33_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A33_t01.dart
index bad5d04..f251155 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A33_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -60,51 +60,49 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A41_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A41_t01.dart
index 1c7acee..c150d9d 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A41_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,44 +49,41 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A42_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A42_t01.dart
index 2424151..e01f0fd 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A42_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,51 +75,49 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A43_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A43_t01.dart
index 2453b3a..305f024 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A43_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,51 +59,49 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A51_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A51_t01.dart
index 5ac3c3c..a1f3b2e 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A51_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A51_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -56,43 +56,41 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A52_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A52_t01.dart
index 0e63a2c..f5f5a0a 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A52_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A52_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,51 +75,49 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A53_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A53_t01.dart
index c820f47..b7b7f95 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A53_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_local_variable_fail_A53_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,51 +59,49 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A11_t01.dart
index 2bbcef2..3cb4fb8 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A11_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,15 +48,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A12_t01.dart
index 681d28d..274cc43 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A12_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -57,15 +57,18 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A21_t01.dart
index f1803f0..c5e1ece 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A21_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A22_t01.dart
index 38db381..fb4bccb 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A22_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A23_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A23_t01.dart
index 1110441..dda63fb 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A23_t01.dart
Binary files differ
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A31_t01.dart
index faa5b04..a93887e 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A31_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,15 +49,18 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A32_t01.dart
index 286c6f9..ad67a64 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A32_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A33_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A33_t01.dart
index cb63f2b..0dd7855 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A33_t01.dart
@@ -36,7 +36,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,23 +59,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A41_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A41_t01.dart
index 115de2e..86130cc 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A41_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -48,15 +48,17 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A42_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A42_t01.dart
index d01dac5..d964bbf 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A42_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A43_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A43_t01.dart
index 8ea93df..c6a55e7 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A43_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,23 +58,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A51_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A51_t01.dart
index 9f7784a..22bb628 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A51_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A51_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -55,15 +55,18 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A52_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A52_t01.dart
index 8f68e2a..20712fe 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A52_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A52_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A53_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A53_t01.dart
index bed5e06..e9da97e 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A53_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_fail_return_value_fail_A53_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -58,23 +58,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A01_t01.dart
index 52b8dce..75659bf 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A01_t01.dart
@@ -33,6 +33,7 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -46,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A02_t01.dart
index 7ee2171..845bed7 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A02_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A03_t01.dart
index 0f0eab2..957a1d2 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A03_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A04_t01.dart
index c014ff7..926e555 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A04_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A05_t01.dart
index 2ce0ed2..5bf806f 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_global_variable_A05_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,23 +56,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A01_t01.dart
index 6f74a80..509fc6a 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A01_t01.dart
@@ -33,6 +33,7 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -46,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A02_t01.dart
index bbc6dcc..2acba28 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A02_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A03_t01.dart
index d3b45a4..9ba5ea9 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A03_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A04_t01.dart
index b0aee44..aca2606 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A04_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A05_t01.dart
index 93a35a4..dea00b2 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_local_variable_A05_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,23 +56,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A01_t01.dart
index c12ba4d..d0bb0ae 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A01_t01.dart
@@ -33,6 +33,7 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -46,15 +47,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance;
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A02_t01.dart
index b60b8e9..3a297da 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A02_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance;
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A03_t01.dart
index ea4a702..f35ddfa 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A03_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance;
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A04_t01.dart
index 7ff4da1..62f0c60 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A04_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,26 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance;
diff --git a/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A05_t01.dart
index c57ce95..0668895 100644
--- a/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/named_function_types_return_value_A05_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,23 +56,26 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A01_t01.dart
index e414e66..418e234 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A01_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -45,41 +45,43 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -87,18 +89,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -129,18 +126,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T1>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<T1> instance2 = new ArgumentsBindingGen<T1>(t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A01_t02.dart
index 3362b03..b68f37a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A01_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -45,28 +45,31 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -94,31 +97,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -148,17 +143,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<T1> c2 =
     new ArgumentsBinding2_t02<T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A01_t03.dart
index 0bbc73d..418513a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A01_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -45,23 +45,26 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -81,12 +84,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -94,13 +93,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -122,11 +116,7 @@
   ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A02_t01.dart
index 40584c7..1508a25 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A02_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,41 +46,43 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -88,18 +90,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -130,18 +127,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T1>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<T1> instance2 = new ArgumentsBindingGen<T1>(t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A02_t02.dart
index 3e85728..26d5560 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A02_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,28 +46,31 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -95,31 +98,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -149,17 +144,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<T1> c2 =
     new ArgumentsBinding2_t02<T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A02_t03.dart
index 3b3bee3..6cb82dc 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A02_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,23 +46,26 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -82,12 +85,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -95,13 +94,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -123,11 +117,7 @@
   ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A03_t01.dart
index eb1f5b6..a3aaa67 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A03_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,41 +46,43 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -88,18 +90,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -130,18 +127,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T1>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<T1> instance2 = new ArgumentsBindingGen<T1>(t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A03_t02.dart
index 9155509..3d1105a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A03_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,28 +46,31 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -95,31 +98,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -149,17 +144,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<T1> c2 =
     new ArgumentsBinding2_t02<T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A03_t03.dart
index f5eb475..609b41b 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A03_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,23 +46,26 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -82,12 +85,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -95,13 +94,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -123,11 +117,7 @@
   ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A04_t01.dart
index 7e88327..013694f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A04_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,41 +47,43 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -89,18 +91,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -131,18 +128,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T1>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<T1> instance2 = new ArgumentsBindingGen<T1>(t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A04_t02.dart
index 0adc126..69487bb 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A04_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,28 +47,31 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -96,31 +99,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -150,17 +145,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<T1> c2 =
     new ArgumentsBinding2_t02<T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A04_t03.dart
index b11b7e8..3fe8cc9 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A04_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,23 +47,26 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -83,12 +86,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -96,13 +95,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -124,11 +118,7 @@
   ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A11_t01.dart
index 8ad7bde..0c008e6 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A11_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -72,50 +72,49 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -123,18 +122,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A11_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A11_t02.dart
index 0ef4c3c..c9ab37b 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A11_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A11_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -72,37 +72,37 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -130,31 +130,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A11_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A11_t03.dart
index abefbd4..1492f30 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A11_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A11_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -72,32 +72,32 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -117,12 +117,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -130,13 +126,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A12_t01.dart
index 7c55868..99ca810 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A12_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,50 +74,49 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -125,18 +124,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A12_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A12_t02.dart
index b34979b..f824aee 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A12_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A12_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,37 +74,37 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -132,31 +132,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A12_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A12_t03.dart
index 15a21b3..c2ce4c5 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A12_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A12_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,32 +74,32 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -119,12 +119,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -132,13 +128,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A13_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A13_t01.dart
index 5ae18ac..ba68b2f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A13_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,50 +74,49 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -125,18 +124,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A13_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A13_t02.dart
index 3162aff..6afe671 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A13_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A13_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,37 +74,37 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -132,31 +132,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A13_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A13_t03.dart
index 1316f92..1f493ce 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A13_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A13_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,32 +74,32 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -119,12 +119,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -132,13 +128,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A14_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A14_t01.dart
index ede2ead..8ce9bf3 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A14_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,50 +74,49 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -125,18 +124,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A14_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A14_t02.dart
index 552a1d0..fe8b66e 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A14_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A14_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,37 +74,37 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -132,31 +132,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A14_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A14_t03.dart
index ad983dc..5f68378 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A14_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A14_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,32 +74,32 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -119,12 +119,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -132,13 +128,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A21_t01.dart
index 8c4a07a..8b395ea 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A21_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,49 +75,51 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -125,18 +127,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A21_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A21_t02.dart
index a5c025c..c5ad0dc 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A21_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A21_t02.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,36 +75,39 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -132,31 +135,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A21_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A21_t03.dart
index e430f5c..a72fde6 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A21_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A21_t03.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,31 +75,34 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -119,12 +122,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -132,13 +131,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A22_t01.dart
index 0a1b06a..ddf6c13 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A22_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,50 +77,52 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -128,18 +130,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A22_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A22_t02.dart
index f892925..0f8c5bf 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A22_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A22_t02.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,37 +77,40 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -135,31 +138,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A22_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A22_t03.dart
index de77deb..273b81f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A22_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A22_t03.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,32 +77,35 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -122,12 +125,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -135,13 +134,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A23_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A23_t01.dart
index b3e1c04..ac853e7 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A23_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,50 +77,51 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -128,18 +129,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A23_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A23_t02.dart
index 1148084..c055811 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A23_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A23_t02.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,37 +77,39 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -135,31 +137,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A23_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A23_t03.dart
index 4974235..f98f07a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A23_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A23_t03.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,32 +77,34 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -122,12 +124,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -135,13 +133,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A24_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A24_t01.dart
index 2b64d08..aaddc90 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A24_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A24_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,48 +77,50 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -126,18 +128,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A24_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A24_t02.dart
index 320c9de..24ed3d1 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A24_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A24_t02.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,35 +77,38 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -133,31 +136,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A24_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A24_t03.dart
index e0c2668..bda65fd 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A24_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A24_t03.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,30 +77,33 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -120,12 +123,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -133,13 +132,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A31_t01.dart
index c00e0d2..bc09de9 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A31_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,49 +74,49 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -124,18 +124,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A31_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A31_t02.dart
index 48f1146..2a809fa 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A31_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A31_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,36 +74,37 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -131,31 +132,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A31_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A31_t03.dart
index b7c3250..eda341d 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A31_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A31_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,31 +74,32 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -118,12 +119,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -131,13 +128,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A32_t01.dart
index d679701..2133e47 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A32_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,50 +73,50 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -124,18 +124,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A32_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A32_t02.dart
index d23b8f5..3bceabe 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A32_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A32_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,37 +73,38 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -131,31 +132,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A32_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A32_t03.dart
index d6e6861..3864737 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A32_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A32_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,32 +73,33 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -118,12 +119,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -131,13 +128,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A33_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A33_t01.dart
index 76f6b1b..1464ce3 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A33_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,49 +74,49 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -124,18 +124,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A33_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A33_t02.dart
index af25780..8a9efa5 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A33_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A33_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,36 +74,37 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -131,31 +132,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A33_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A33_t03.dart
index ff1f740..2f8599f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A33_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A33_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,31 +74,32 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -118,12 +119,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -131,13 +128,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A34_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A34_t01.dart
index 86625f3..48688ec 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A34_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A34_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,49 +74,49 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -124,18 +124,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A34_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A34_t02.dart
index cd64a97..2754c6d 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A34_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A34_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,36 +74,37 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -131,31 +132,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A34_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A34_t03.dart
index e360dbc..270c1f9 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A34_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A34_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,31 +74,32 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -118,12 +119,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -131,13 +128,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A41_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A41_t01.dart
index 20f0608..5351ee1 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A41_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,49 +56,49 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -106,18 +106,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A41_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A41_t02.dart
index 2c5b8ef..30e46b3 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A41_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A41_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,36 +56,37 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -113,31 +114,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A41_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A41_t03.dart
index b9892a4..73c445f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A41_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A41_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,31 +56,32 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -100,12 +101,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -113,13 +110,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A42_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A42_t01.dart
index b96c24e..de2cc6c 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A42_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,49 +56,49 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -106,18 +106,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A42_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A42_t02.dart
index cf75367..ded8253 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A42_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A42_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,36 +56,37 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -113,31 +114,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A42_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A42_t03.dart
index 28306d2..c684bf9 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A42_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A42_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,31 +56,32 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -100,12 +101,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -113,13 +110,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A43_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A43_t01.dart
index 39387bc..6a90253 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A43_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,49 +56,49 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -106,18 +106,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A43_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A43_t02.dart
index 35e7861..a1c8b15 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A43_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A43_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,36 +56,37 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -113,31 +114,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A43_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A43_t03.dart
index 6dc8982..2a31299 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A43_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A43_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,31 +56,32 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -100,12 +101,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -113,13 +110,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A44_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A44_t01.dart
index ec72f4b..c2de470 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A44_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A44_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,49 +56,49 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -106,18 +106,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A44_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A44_t02.dart
index a27f4a1..9869e3a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A44_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A44_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,36 +56,37 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -113,31 +114,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A44_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A44_t03.dart
index dfe5855..d562cad 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A44_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_arguments_binding_A44_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,31 +56,32 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -100,12 +101,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -113,13 +110,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A01_t01.dart
index 2860d64..2b7049d 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A01_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -45,15 +45,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A01_t02.dart
index 8786184..92d0079 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A01_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -45,19 +45,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A01_t03.dart
index d150ba1..98371e3 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A01_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -45,19 +45,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A02_t01.dart
index a58291e..aa86291 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A02_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A02_t02.dart
index d0b58d4..08d7f2d 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A02_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,19 +46,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A02_t03.dart
index b2ed7d8..4adb8bd 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A02_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,19 +46,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A03_t01.dart
index a727023..751109e 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A03_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A03_t02.dart
index cb4452b..c9e6f3e 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A03_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,19 +46,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A03_t03.dart
index 1eb27cb..02f0265 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A03_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,19 +46,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A04_t01.dart
index 48014ea..b73357a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A04_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMember1_t01 {
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A04_t02.dart
index 3a98942..811d30e 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A04_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,22 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A04_t03.dart
index de492bc..fa59213 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A04_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,22 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A11_t01.dart
index 5d0cac6..dc3c657 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A11_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -72,23 +72,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A11_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A11_t02.dart
index c4f3f49..a8e0cbb 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A11_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A11_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -72,28 +72,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A11_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A11_t03.dart
index 747e8c4..f0c5a61 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A11_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A11_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -72,28 +72,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A12_t01.dart
index 827ca30..d883dd2 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A12_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A12_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A12_t02.dart
index 076abff..fb46d6c 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A12_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A12_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,28 +74,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A12_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A12_t03.dart
index c69f3b4..4d88b35 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A12_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A12_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,28 +74,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A13_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A13_t01.dart
index aceaf39..256612c 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A13_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A13_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A13_t02.dart
index fdd907c..1813918 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A13_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A13_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,28 +74,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A13_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A13_t03.dart
index 1c05088..6e5ccf7 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A13_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A13_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,28 +74,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A14_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A14_t01.dart
index 6e3a0bc..4a0bad4 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A14_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A14_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A14_t02.dart
index 0868022..046fc9f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A14_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A14_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,28 +74,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A14_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A14_t03.dart
index 6724da2..5486962 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A14_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A14_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,28 +74,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A21_t01.dart
index 5e58ab9..02cef45 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A21_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A21_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A21_t02.dart
index be5d4d2..09aead5 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A21_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A21_t02.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,27 +75,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A21_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A21_t03.dart
index df4b70f..8405930 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A21_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A21_t03.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,27 +75,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A22_t01.dart
index ddc6a2c..a2447eb 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A22_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A22_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A22_t02.dart
index b94ea61..6454a48 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A22_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A22_t02.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,28 +77,31 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A22_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A22_t03.dart
index 89582d7..1e61d34 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A22_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A22_t03.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,28 +77,31 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A23_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A23_t01.dart
index 5895daf..3d95488 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A23_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A23_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A23_t02.dart
index 90fbcf7..ed29713 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A23_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A23_t02.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,28 +77,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A23_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A23_t03.dart
index 7222377..0630be0 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A23_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A23_t03.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,28 +77,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A24_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A24_t01.dart
index 8ebe0c4..9423114 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A24_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A24_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,21 +77,24 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A24_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A24_t02.dart
index 44c578f..ff7c845 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A24_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A24_t02.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,26 +77,29 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A24_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A24_t03.dart
index ffe2324..0c1a443 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A24_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A24_t03.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,26 +77,29 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A31_t01.dart
index a3dcf3b..98956f5 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A31_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,22 +74,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A31_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A31_t02.dart
index 164d247..720a96d 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A31_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A31_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,28 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A31_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A31_t03.dart
index f2f3647..6a3a689 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A31_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A31_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,28 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A32_t01.dart
index 359f042..5b873ba 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A32_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,23 +73,24 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A32_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A32_t02.dart
index 62e9764..5593808 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A32_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A32_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,28 +73,29 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A32_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A32_t03.dart
index bfc2113..5525bf4 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A32_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A32_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,28 +73,29 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A33_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A33_t01.dart
index 72cc1ab..e2407aa 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A33_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,22 +74,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A33_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A33_t02.dart
index d1ec428..50563ec 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A33_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A33_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,28 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A33_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A33_t03.dart
index 4340463..0609810 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A33_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A33_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,28 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A34_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A34_t01.dart
index 42bf972..483da8e 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A34_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A34_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,22 +74,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A34_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A34_t02.dart
index 1bcdcee..a7e38fa 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A34_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A34_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,28 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A34_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A34_t03.dart
index 64f9af3..b0f2698 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A34_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A34_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,27 +74,28 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A41_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A41_t01.dart
index 7b37b20..7a5d007 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A41_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A41_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A41_t02.dart
index e976bd7..f050a32 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A41_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A41_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,27 +56,28 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A41_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A41_t03.dart
index e1e78f1..3eed996 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A41_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A41_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,27 +56,28 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A42_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A42_t01.dart
index 3a4a75b..a06f812 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A42_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A42_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A42_t02.dart
index caf9122..0116ed1 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A42_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A42_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,27 +56,28 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A42_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A42_t03.dart
index 4e30489..5a14f42 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A42_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A42_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,27 +56,28 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A43_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A43_t01.dart
index b8a9ce1..be7fd61 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A43_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A43_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A43_t02.dart
index b4444f9..7ddbb47 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A43_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A43_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,27 +56,28 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A43_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A43_t03.dart
index de4348e..c186772 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A43_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A43_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,27 +56,28 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A44_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A44_t01.dart
index dfca3d6..4a4404e 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A44_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A44_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A44_t02.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A44_t02.dart
index 11a2fa1..d381d55 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A44_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A44_t02.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,27 +56,28 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A44_t03.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A44_t03.dart
index 3a20ee2..3c2d049 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A44_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_class_member_A44_t03.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,27 +56,28 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A01_t01.dart
index 66d8d55..f446fc1 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A01_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,38 +46,39 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A02_t01.dart
index d6da5bf..3af4992 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A02_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,38 +47,39 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A03_t01.dart
index c500250..fa41271 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A03_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,38 +46,39 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A04_t01.dart
index ced869a..7d1a92a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A04_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,38 +46,39 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A05_t01.dart
index e33598a..e8a095d 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A05_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,47 +68,47 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A06_t01.dart
index f3318c1..dd2db92 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A06_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,47 +68,47 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A07_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A07_t01.dart
index dfa5b2a..ff5aea7 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A07_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,47 +68,47 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A08_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A08_t01.dart
index df0b76d..bf8d5ad 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A08_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -67,46 +67,46 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A11_t01.dart
index 17420d6..2dcf1ed 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A11_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,38 +49,39 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A12_t01.dart
index 3f9c59c..2d7cce2 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A12_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,47 +69,47 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A21_t01.dart
index 186e4fa..a04ba44 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A21_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,38 +49,39 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A22_t01.dart
index b8af1e0..a007a0c 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A22_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,47 +68,47 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A31_t01.dart
index ad9589b..78484e1 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A31_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -65,40 +65,41 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A32_t01.dart
index 3373b93..a2605fb 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_fail_A32_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,47 +69,47 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A01_t01.dart
index 401a1b9..bbcb900 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A01_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,21 +47,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A02_t01.dart
index 0d80072..26fa31a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A02_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,21 +48,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A03_t01.dart
index 38da699..b17a655 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A03_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,21 +47,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A04_t01.dart
index 2e39439..c2162ba 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A04_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,21 +47,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A05_t01.dart
index c70c2d2..a0374ca 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A05_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,30 +69,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A06_t01.dart
index 9e76e1c..46f9b4d 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A06_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,30 +69,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A07_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A07_t01.dart
index 7ccb416..ea626b9 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A07_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,30 +69,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A08_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A08_t01.dart
index 3f2afbf..fa85eee 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A08_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,29 +68,29 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A11_t01.dart
index f282185..fe9d844 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A11_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -50,21 +50,22 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A12_t01.dart
index 5dd6ca8..d481300 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A12_t01.dart
@@ -39,7 +39,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -70,30 +70,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A21_t01.dart
index 177ee1c..3adac9e 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A21_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -50,21 +50,22 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A22_t01.dart
index 2821c7f..35a5b11 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A22_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,30 +69,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A31_t01.dart
index a6a724c..62aee81 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A31_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -66,23 +66,24 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A32_t01.dart
index e97a661..a06cfad 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_mixin_fail_A32_t01.dart
@@ -39,7 +39,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -70,30 +70,30 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A01_t01.dart
index f2595aa..1ff2902 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A01_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,28 +47,29 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -81,7 +82,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A02_t01.dart
index 8a4a5e1..0242b18 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A02_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,28 +48,29 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -82,7 +83,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A03_t01.dart
index b241c3a..65dde40 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A03_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,28 +47,29 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -81,7 +82,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A04_t01.dart
index 46f88cf..f29c89e 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A04_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,28 +47,29 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -81,7 +82,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A05_t01.dart
index 8e2dc3d..fe93068 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A05_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,37 +69,37 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -112,7 +112,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A06_t01.dart
index 39842a6..0c82b1a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A06_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,37 +69,37 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -112,7 +112,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A07_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A07_t01.dart
index 5b33ff8..4ed9b74 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A07_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,37 +69,37 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -112,7 +112,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A08_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A08_t01.dart
index 9a0bb1d..8f076c3 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A08_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,36 +68,36 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -110,7 +110,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A11_t01.dart
index 3f4310a..10366bd 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A11_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -50,28 +50,29 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -84,7 +85,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A12_t01.dart
index e107b12..d226da3 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A12_t01.dart
@@ -39,7 +39,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -70,37 +70,37 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -113,7 +113,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A21_t01.dart
index 8710ba0..49e3e2f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A21_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -50,28 +50,29 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -84,7 +85,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A22_t01.dart
index 00c00de..614782c 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A22_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,37 +69,37 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -112,7 +112,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A31_t01.dart
index 1adc11a..50ec6b9 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A31_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -66,30 +66,31 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -102,7 +103,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A32_t01.dart
index 1ad2cce..09e14b6 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_arguments_binding_super_fail_A32_t01.dart
@@ -39,7 +39,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -70,37 +70,37 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -113,7 +113,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A01_t01.dart
index 3f376eb..00bcba3 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A01_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -77,7 +78,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -99,7 +100,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -140,4 +141,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A02_t01.dart
index f676462..da6b9f0 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A02_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,19 +48,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -78,7 +79,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -100,7 +101,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -141,4 +142,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A03_t01.dart
index ad5657b..a897c90 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A03_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -77,7 +78,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -99,7 +100,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -140,4 +141,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A04_t01.dart
index a2ad69a..8718e85 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A04_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -77,7 +78,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -99,7 +100,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -140,4 +141,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A05_t01.dart
index 254066a..8162549 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A05_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -108,7 +108,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -130,7 +130,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -172,4 +172,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A06_t01.dart
index fdaf15c..3f5b3d2 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A06_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -108,7 +108,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -130,7 +130,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -172,4 +172,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A07_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A07_t01.dart
index afa3f68..e13ab69 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A07_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -108,7 +108,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -130,7 +130,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -172,4 +172,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A08_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A08_t01.dart
index be3e6ef..f0b841f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A08_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,27 +68,27 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -106,7 +106,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -128,7 +128,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -170,4 +170,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A11_t01.dart
index 0ccf26e..db2380f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A11_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -50,19 +50,20 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -80,7 +81,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -102,7 +103,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -143,4 +144,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A12_t01.dart
index f8bc3ab..447850a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A12_t01.dart
@@ -39,7 +39,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -70,28 +70,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -109,7 +109,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -131,7 +131,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -173,4 +173,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A21_t01.dart
index 7b141ba..221adac 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A21_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -50,19 +50,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -80,7 +81,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -102,7 +103,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -143,4 +144,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A22_t01.dart
index 6cc81d5..f4b49e6 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A22_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -108,7 +108,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -130,7 +130,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -172,4 +172,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A31_t01.dart
index 302eee7..b35836e 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A31_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -66,21 +66,22 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -98,7 +99,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -120,7 +121,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -162,4 +163,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A32_t01.dart
index e8c100e..972f5c6 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_fail_A32_t01.dart
@@ -39,7 +39,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -70,28 +70,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -109,7 +109,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -131,7 +131,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -173,4 +173,3 @@
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
 
-
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A01_t01.dart
index e6b87c7..5a1d2ef 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A01_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A02_t01.dart
index e28aecb..e91fedb 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A02_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,19 +48,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A03_t01.dart
index 73008b8..0a3695d 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A03_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A04_t01.dart
index 540c7c5..4280d86 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A04_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A05_t01.dart
index 99d02f9..8a777ff 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A05_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A06_t01.dart
index 2de32c3..c6e5532 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A06_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A07_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A07_t01.dart
index 3421a1b..8ee572a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A07_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A08_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A08_t01.dart
index 6453f5e..f967b65 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A08_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,27 +68,27 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A11_t01.dart
index 43277dc..43a7d49 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A11_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -50,19 +50,20 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A12_t01.dart
index 0912df1..8a5ebd0 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A12_t01.dart
@@ -39,7 +39,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -70,28 +70,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A21_t01.dart
index 948aae5..e318448 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A21_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -50,19 +50,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A22_t01.dart
index 3f12886..40b1e8f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A22_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A31_t01.dart
index e2ee62d..6b54037 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A31_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -66,21 +66,22 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A32_t01.dart
index 6a21ef8..ed7227a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_mixin_fail_A32_t01.dart
@@ -39,7 +39,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -70,28 +70,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A01_t01.dart
index 06bd8a9..ffc849b 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A01_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A02_t01.dart
index 66efcd6..84c6e66 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A02_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,19 +48,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A03_t01.dart
index 8ce3191..98cd561 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A03_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A04_t01.dart
index fba1586..e3939f9 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A04_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,19 +47,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A05_t01.dart
index 226d374..dc8cfa7 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A05_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A06_t01.dart
index cad50bc..827007f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A06_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A07_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A07_t01.dart
index 2fb0af0..79fc688 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A07_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A08_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A08_t01.dart
index eda5363..0554018 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A08_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,27 +68,27 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A11_t01.dart
index f75d784..00ba9ba 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A11_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -50,19 +50,20 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A12_t01.dart
index 6564d4b..1c512e2 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A12_t01.dart
@@ -39,7 +39,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -70,28 +70,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A21_t01.dart
index 95b6e41..34b51e3 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A21_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -50,19 +50,20 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A22_t01.dart
index 799c5ee..6358ba4 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A22_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,28 +69,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A31_t01.dart
index 5218027..6c2c1b0 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A31_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -66,21 +66,22 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A32_t01.dart
index 3452501..27478f3 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_class_member_super_fail_A32_t01.dart
@@ -39,7 +39,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -70,28 +70,28 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A01_t01.dart
index 95977ee..4359baf 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A01_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,14 +47,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A02_t01.dart
index 8388a54..ff53363 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A02_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,14 +48,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A03_t01.dart
index d9173e7..98d1f95 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A03_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,14 +47,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A04_t01.dart
index c7153ba..c5a1189 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A04_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,14 +47,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A05_t01.dart
index e1e7cce..d6d9d32 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A05_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,23 +69,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A06_t01.dart
index 645d88f..c33fd14 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A06_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,23 +69,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A07_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A07_t01.dart
index c1978f3..1f7d969 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A07_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,23 +69,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A08_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A08_t01.dart
index ad4d202..d56efbf 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A08_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,22 +68,22 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A11_t01.dart
index 6eb7375..9ea810a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A11_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -50,14 +50,15 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A12_t01.dart
index af55db8..41e2f57 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A12_t01.dart
@@ -39,7 +39,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -70,23 +70,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A21_t01.dart
index 70ba412..908c5f8 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A21_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -50,14 +50,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A22_t01.dart
index 1690ce6..d535632 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A22_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,23 +69,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A31_t01.dart
index af61ad2..7980c25 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A31_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -66,16 +66,17 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A32_t01.dart
index 9aa1e57..eec67bf 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_global_variable_fail_A32_t01.dart
@@ -39,7 +39,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -70,23 +70,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A01_t01.dart
index 35c60a5..211574c 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A01_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,43 +47,39 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A02_t01.dart
index 27b8f80..331a29f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A02_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -48,43 +48,39 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A03_t01.dart
index 9db92bc..90c3dc5 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A03_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,43 +47,39 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A04_t01.dart
index 5460021..de6bf9c 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A04_t01.dart
@@ -35,7 +35,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,43 +47,39 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A05_t01.dart
index 38b51c4..af5971a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A05_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,52 +69,47 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A06_t01.dart
index cde32b1..411a7bf 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A06_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,52 +69,47 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A07_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A07_t01.dart
index a6ce1d0..cfaae00 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A07_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,52 +69,47 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A08_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A08_t01.dart
index bbf0244..878def8 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A08_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,51 +68,46 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A11_t01.dart
index e1a6401..cfa4a2a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A11_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -50,43 +50,39 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A12_t01.dart
index dac6f27..b5f5e75 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A12_t01.dart
@@ -39,7 +39,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -70,52 +70,47 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A21_t01.dart
index daf515e..22a5214 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A21_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -50,43 +50,39 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A22_t01.dart
index 7965dda..f8603b8 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A22_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,52 +69,47 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A31_t01.dart
index 03f5534..1ab0273 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A31_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -66,45 +66,41 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A32_t01.dart
index 8b1d924..a60052d 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_local_variable_fail_A32_t01.dart
@@ -39,7 +39,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -70,52 +70,47 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A01_t01.dart
index 25327e1..5378500 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A01_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A02_t01.dart
index c2cf960..e46819f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A02_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,14 +47,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A03_t01.dart
index f607dbb..ec28c73 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A03_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A04_t01.dart
index 6ef96e9..d97de83 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A04_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,14 +46,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A05_t01.dart
index 4f45482..c4fac74 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A05_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A06_t01.dart
index 5bd6c92..0b2de2d 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A06_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A07_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A07_t01.dart
index ca11ffa..27f6ecc 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A07_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A07_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A08_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A08_t01.dart
index a333045..49e034f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A08_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A08_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -67,22 +67,22 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A11_t01.dart
index ca0ad31..5d25ca6 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A11_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -49,14 +49,15 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A12_t01.dart
index 52cf46e..e938bf4 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A12_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,23 +69,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A21_t01.dart
index 85b1ea8..8ccdd5c 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A21_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -49,14 +49,15 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A22_t01.dart
index 1095734..3a61fc9 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A22_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -68,23 +68,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A31_t01.dart
index 41920a3..cc4344e 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A31_t01.dart
@@ -37,7 +37,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -65,16 +65,17 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A32_t01.dart
index acec624..d018023 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_fail_return_value_fail_A32_t01.dart
@@ -38,7 +38,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -69,23 +69,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A01_t01.dart
index 3e9fb0e..6a71b96 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A01_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -45,15 +45,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A02_t01.dart
index a669a71..a19a75a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A02_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A03_t01.dart
index 5502b26..ffa7d61 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A03_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A04_t01.dart
index b3a3fe2..04f6a4d 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A04_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class GlobalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A11_t01.dart
index f7e24a1..34943de 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A11_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -72,23 +72,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A12_t01.dart
index 567d8e7..b8475f7 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A12_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A13_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A13_t01.dart
index dd64751..336a3e9 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A13_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A14_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A14_t01.dart
index ff785cb..10f4c2a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A14_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A21_t01.dart
index e82211f..c065054 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A21_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A22_t01.dart
index 0ad8b6c..5c2afba 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A22_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A23_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A23_t01.dart
index 046e4b5..c69da93 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A23_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A24_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A24_t01.dart
index 6017463..efe4dd1 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A24_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A24_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,21 +77,24 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A31_t01.dart
index 0d2ae29..f260f69 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A31_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,22 +74,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A32_t01.dart
index e1e49a7..8a003da 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A32_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,23 +73,24 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A33_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A33_t01.dart
index 2074031..129ad41 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A33_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,22 +74,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A34_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A34_t01.dart
index 0266881..3d75c91 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A34_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A34_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,22 +74,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A41_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A41_t01.dart
index c3ac6f1..b42caf0 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A41_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A42_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A42_t01.dart
index c4d6dd9..2e7038e 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A42_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A43_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A43_t01.dart
index 94bac28..ad27423 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A43_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A44_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A44_t01.dart
index cc17e33..7c2de13 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A44_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_global_variable_A44_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A01_t01.dart
index e258392..2ae7078 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A01_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -45,15 +45,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A02_t01.dart
index aae9205..602cf1c 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A02_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A03_t01.dart
index 707ea80..d78ecdd 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A03_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A04_t01.dart
index bf30bec..96d2e42 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A04_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 class LocalVariableTest {
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A11_t01.dart
index 14927b5..a11b324 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A11_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -72,23 +72,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A12_t01.dart
index f173a48..8bcbbb8 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A12_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A13_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A13_t01.dart
index 9faf4bb..aba98f4 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A13_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A14_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A14_t01.dart
index b31ef6b..700d1ea 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A14_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A21_t01.dart
index df39be2..334401c 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A21_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A22_t01.dart
index 8f564a7..98988dd 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A22_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A23_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A23_t01.dart
index a1b33f6..f6bbcb4 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A23_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A24_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A24_t01.dart
index 482e599..15d5fe1 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A24_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A24_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,21 +77,24 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A31_t01.dart
index 30e5836..4bf3524 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A31_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,22 +74,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A32_t01.dart
index 8ac373b..2917257 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A32_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,23 +73,24 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A33_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A33_t01.dart
index a9cadb9..ec616c0 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A33_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,22 +74,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A34_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A34_t01.dart
index c78d299..7251d4e 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A34_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A34_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,22 +74,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A41_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A41_t01.dart
index f3a355e..41ab9dd 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A41_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A42_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A42_t01.dart
index ab4b188..fa8da61 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A42_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A43_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A43_t01.dart
index 06a3446..a84ba3c 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A43_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A44_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A44_t01.dart
index 0e09bcc..c6bd831 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A44_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_local_variable_A44_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A01_t01.dart
index a28b58a..2b4d704 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A01_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -45,15 +45,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A02_t01.dart
index a936832..efce53f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A02_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A03_t01.dart
index 76bcb8f..78d83a1 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A03_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -46,15 +46,18 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A04_t01.dart
index 57dafe8..624116f 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A04_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -47,15 +47,18 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
+
 
 
 T1 returnValueFunc() => t0Instance;
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A11_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A11_t01.dart
index f50da6c..11b84f5 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A11_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A11_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -72,23 +72,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A12_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A12_t01.dart
index 4ac6ace..0a0bb78 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A12_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A12_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A13_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A13_t01.dart
index 6b97241..6b8693b 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A13_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A13_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A14_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A14_t01.dart
index bb14200..a7f4907 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A14_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A14_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,23 +74,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A21_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A21_t01.dart
index 557e6bf..ce77a38 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A21_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A21_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -75,22 +75,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A22_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A22_t01.dart
index cd054c9..67ae0aa 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A22_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A22_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A23_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A23_t01.dart
index c5d34c4..c73b1e8 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A23_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A23_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,23 +77,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A24_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A24_t01.dart
index 52d086a..75f5d9a 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A24_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A24_t01.dart
@@ -34,7 +34,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -77,21 +77,24 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A31_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A31_t01.dart
index 0066fa1..2ca8fd3 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A31_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A31_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,22 +74,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A32_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A32_t01.dart
index 98c0f43..54511b0 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A32_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A32_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -73,23 +73,24 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A33_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A33_t01.dart
index edcdae5..24d66e0 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A33_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A33_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,22 +74,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A34_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A34_t01.dart
index 11ed2e7..e69d79c 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A34_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A34_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -74,22 +74,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A41_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A41_t01.dart
index 12ef9db..03d43eb 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A41_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A41_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A42_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A42_t01.dart
index 3a76953..f0ca106 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A42_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A42_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A43_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A43_t01.dart
index 28d6f27..e8fde2c 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A43_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A43_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A44_t01.dart b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A44_t01.dart
index 7559049..a7f1875 100644
--- a/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A44_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/positional_function_types_return_value_A44_t01.dart
@@ -33,7 +33,7 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -56,22 +56,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A01_t01.dart
index 673268d..a5a2012 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A01_t01.dart
@@ -24,39 +24,42 @@
  */
 
 
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
 
 
 
-namedArgumentsFunc1(T t1, {T t2}) {}
-positionalArgumentsFunc1(T t1, [T t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(T t1, {T t2 = t1Default}) {}
+positionalArgumentsFunc1(T t1, [T t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T t1) {}
 
-  ArgumentsBindingClass.named(T t1, {T t2}) {}
-  ArgumentsBindingClass.positional(T t1, [T t2]) {}
+  ArgumentsBindingClass.named(T t1, {T t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T t1, [T t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T t1, {T t2}) {
+  factory ArgumentsBindingClass.fNamed(T t1, {T t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T t1, [T t2]) {
+  factory ArgumentsBindingClass.fPositional(T t1, [T t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T t1, {T t2}) {}
-  static positionalArgumentsStaticMethod(T t1, [T t2]) {}
+  static namedArgumentsStaticMethod(T t1, {T t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T t1, [T t2 = t1Default]) {}
 
-  namedArgumentsMethod(T t1, {T t2}) {}
-  positionalArgumentsMethod(T t1, [T t2]) {}
+  namedArgumentsMethod(T t1, {T t2 = t1Default}) {}
+  positionalArgumentsMethod(T t1, [T t2 = t1Default]) {}
 
   set testSetter(T val) {}
 }
@@ -64,18 +67,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -106,18 +104,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<T>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<T> instance2 = new ArgumentsBindingGen<T>(t0Instance);
   instance2 = new ArgumentsBindingGen<T>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<T>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A01_t02.dart
index 96b849a..05c6d0d 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A01_t02.dart
@@ -24,26 +24,30 @@
  */
 
 
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T m;
 
-  ArgumentsBindingSuper1_t02(T value) {}
-  ArgumentsBindingSuper1_t02.named(T value, {T val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T value, [T val2]) {}
+  ArgumentsBindingSuper1_t02(T value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T value, {T val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T value, [T val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T val) {}
-  void superTestPositioned(T val, [T val2]) {}
-  void superTestNamed(T val, {T val2}) {}
+  void superTestPositioned(T val, [T val2 = t1Default]) {}
+  void superTestNamed(T val, {T val2 = t1Default}) {}
   T get superGetter => m;
   void set superSetter(T val) {}
 }
@@ -71,31 +75,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -125,17 +121,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<T> c2 =
     new ArgumentsBinding2_t02<T>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<T>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<T>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A01_t03.dart
index c9e13eb..e5ffe97 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A01_t03.dart
@@ -24,21 +24,25 @@
  */
 
 
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T m;
+  T m = t1Default;
 
   void superTest(T val) {}
-  void superTestPositioned(T val, [T val2]) {}
-  void superTestNamed(T val, {T val2}) {}
+  void superTestPositioned(T val, [T val2 = t1Default]) {}
+  void superTestNamed(T val, {T val2 = t1Default}) {}
   T get superGetter => m;
   void set superSetter(T val) {}
 }
@@ -58,12 +62,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -71,13 +71,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -99,11 +94,7 @@
   ArgumentsBinding2_t03<T> c2 = new ArgumentsBinding2_t03<T>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A02_t01.dart
index b6b2cd9..a196cf7 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A02_t01.dart
@@ -24,37 +24,38 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
 
 
 
-namedArgumentsFunc1(dynamic t1, {dynamic t2}) {}
-positionalArgumentsFunc1(dynamic t1, [dynamic t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(dynamic t1, {dynamic t2 = t1Default}) {}
+positionalArgumentsFunc1(dynamic t1, [dynamic t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(dynamic t1) {}
 
-  ArgumentsBindingClass.named(dynamic t1, {dynamic t2}) {}
-  ArgumentsBindingClass.positional(dynamic t1, [dynamic t2]) {}
+  ArgumentsBindingClass.named(dynamic t1, {dynamic t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(dynamic t1, [dynamic t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(dynamic t1, {dynamic t2}) {
+  factory ArgumentsBindingClass.fNamed(dynamic t1, {dynamic t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(dynamic t1, [dynamic t2]) {
+  factory ArgumentsBindingClass.fPositional(dynamic t1, [dynamic t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(dynamic t1, {dynamic t2}) {}
-  static positionalArgumentsStaticMethod(dynamic t1, [dynamic t2]) {}
+  static namedArgumentsStaticMethod(dynamic t1, {dynamic t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(dynamic t1, [dynamic t2 = t1Default]) {}
 
-  namedArgumentsMethod(dynamic t1, {dynamic t2}) {}
-  positionalArgumentsMethod(dynamic t1, [dynamic t2]) {}
+  namedArgumentsMethod(dynamic t1, {dynamic t2 = t1Default}) {}
+  positionalArgumentsMethod(dynamic t1, [dynamic t2 = t1Default]) {}
 
   set testSetter(dynamic val) {}
 }
@@ -62,18 +63,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -104,18 +100,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<dynamic>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<dynamic>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<dynamic> instance2 = new ArgumentsBindingGen<dynamic>(t0Instance);
   instance2 = new ArgumentsBindingGen<dynamic>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<dynamic>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<dynamic>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<dynamic>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A02_t02.dart
index dd2baf4..7c88c89 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A02_t02.dart
@@ -24,24 +24,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   dynamic m;
 
-  ArgumentsBindingSuper1_t02(dynamic value) {}
-  ArgumentsBindingSuper1_t02.named(dynamic value, {dynamic val2}) {}
-  ArgumentsBindingSuper1_t02.positional(dynamic value, [dynamic val2]) {}
+  ArgumentsBindingSuper1_t02(dynamic value): m = value {}
+  ArgumentsBindingSuper1_t02.named(dynamic value, {dynamic val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(dynamic value, [dynamic val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(dynamic val) {}
-  void superTestPositioned(dynamic val, [dynamic val2]) {}
-  void superTestNamed(dynamic val, {dynamic val2}) {}
+  void superTestPositioned(dynamic val, [dynamic val2 = t1Default]) {}
+  void superTestNamed(dynamic val, {dynamic val2 = t1Default}) {}
   dynamic get superGetter => m;
   void set superSetter(dynamic val) {}
 }
@@ -69,31 +71,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -123,17 +117,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<dynamic> c2 =
     new ArgumentsBinding2_t02<dynamic>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<dynamic>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<dynamic>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<dynamic>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<dynamic>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<dynamic>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A02_t03.dart
index d665f56..2385956 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A02_t03.dart
@@ -24,19 +24,21 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  dynamic m;
+  dynamic m = t1Default;
 
   void superTest(dynamic val) {}
-  void superTestPositioned(dynamic val, [dynamic val2]) {}
-  void superTestNamed(dynamic val, {dynamic val2}) {}
+  void superTestPositioned(dynamic val, [dynamic val2 = t1Default]) {}
+  void superTestNamed(dynamic val, {dynamic val2 = t1Default}) {}
   dynamic get superGetter => m;
   void set superSetter(dynamic val) {}
 }
@@ -56,12 +58,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -69,13 +67,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -97,11 +90,7 @@
   ArgumentsBinding2_t03<dynamic> c2 = new ArgumentsBinding2_t03<dynamic>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A03_t01.dart
index 7ae2048..f69a170 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A03_t01.dart
@@ -24,37 +24,38 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
+positionalArgumentsFunc1(Object t1, [Object t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Object t1) {}
 
-  ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-  ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+  ArgumentsBindingClass.named(Object t1, {Object t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Object t1, [Object t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-  static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+  static namedArgumentsStaticMethod(Object t1, {Object t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Object t1, [Object t2 = t1Default]) {}
 
-  namedArgumentsMethod(Object t1, {Object t2}) {}
-  positionalArgumentsMethod(Object t1, [Object t2]) {}
+  namedArgumentsMethod(Object t1, {Object t2 = t1Default}) {}
+  positionalArgumentsMethod(Object t1, [Object t2 = t1Default]) {}
 
   set testSetter(Object val) {}
 }
@@ -62,18 +63,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -104,18 +100,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Object>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Object>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Object> instance2 = new ArgumentsBindingGen<Object>(t0Instance);
   instance2 = new ArgumentsBindingGen<Object>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Object>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A03_t02.dart
index 50ac36e..20c34c1 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A03_t02.dart
@@ -24,24 +24,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   Object m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object value, {Object val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => m;
   void set superSetter(Object val) {}
 }
@@ -69,31 +71,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -123,17 +117,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Object> c2 =
     new ArgumentsBinding2_t02<Object>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Object>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Object>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A03_t03.dart
index 840c9eb..545a9b0 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A03_t03.dart
@@ -24,19 +24,21 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => m;
   void set superSetter(Object val) {}
 }
@@ -56,12 +58,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -69,13 +67,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -97,11 +90,7 @@
   ArgumentsBinding2_t03<Object> c2 = new ArgumentsBinding2_t03<Object>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A04_t01.dart
index 51e0645..5808a39 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A04_t01.dart
@@ -24,37 +24,38 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
 
 
 
-namedArgumentsFunc1(Null t1, {Null t2}) {}
-positionalArgumentsFunc1(Null t1, [Null t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(Null t1, {Null t2 = t1Default}) {}
+positionalArgumentsFunc1(Null t1, [Null t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Null t1) {}
 
-  ArgumentsBindingClass.named(Null t1, {Null t2}) {}
-  ArgumentsBindingClass.positional(Null t1, [Null t2]) {}
+  ArgumentsBindingClass.named(Null t1, {Null t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Null t1, [Null t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Null t1, {Null t2}) {
+  factory ArgumentsBindingClass.fNamed(Null t1, {Null t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Null t1, [Null t2]) {
+  factory ArgumentsBindingClass.fPositional(Null t1, [Null t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Null t1, {Null t2}) {}
-  static positionalArgumentsStaticMethod(Null t1, [Null t2]) {}
+  static namedArgumentsStaticMethod(Null t1, {Null t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Null t1, [Null t2 = t1Default]) {}
 
-  namedArgumentsMethod(Null t1, {Null t2}) {}
-  positionalArgumentsMethod(Null t1, [Null t2]) {}
+  namedArgumentsMethod(Null t1, {Null t2 = t1Default}) {}
+  positionalArgumentsMethod(Null t1, [Null t2 = t1Default]) {}
 
   set testSetter(Null val) {}
 }
@@ -62,18 +63,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -104,18 +100,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Null>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Null>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Null> instance2 = new ArgumentsBindingGen<Null>(t0Instance);
   instance2 = new ArgumentsBindingGen<Null>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Null>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Null>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Null>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A04_t02.dart
index 511b86d..a14a571 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A04_t02.dart
@@ -24,24 +24,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   Null m;
 
-  ArgumentsBindingSuper1_t02(Null value) {}
-  ArgumentsBindingSuper1_t02.named(Null value, {Null val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Null value, [Null val2]) {}
+  ArgumentsBindingSuper1_t02(Null value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Null value, {Null val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Null value, [Null val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Null val) {}
-  void superTestPositioned(Null val, [Null val2]) {}
-  void superTestNamed(Null val, {Null val2}) {}
+  void superTestPositioned(Null val, [Null val2 = t1Default]) {}
+  void superTestNamed(Null val, {Null val2 = t1Default}) {}
   Null get superGetter => m;
   void set superSetter(Null val) {}
 }
@@ -69,31 +71,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -123,17 +117,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Null> c2 =
     new ArgumentsBinding2_t02<Null>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Null>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Null>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Null>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Null>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Null>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A04_t03.dart
index c53313f..de5d3bb 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_arguments_binding_A04_t03.dart
@@ -24,19 +24,21 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Null m;
+  Null m = t1Default;
 
   void superTest(Null val) {}
-  void superTestPositioned(Null val, [Null val2]) {}
-  void superTestNamed(Null val, {Null val2}) {}
+  void superTestPositioned(Null val, [Null val2 = t1Default]) {}
+  void superTestNamed(Null val, {Null val2 = t1Default}) {}
   Null get superGetter => m;
   void set superSetter(Null val) {}
 }
@@ -56,12 +58,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -69,13 +67,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -97,11 +90,7 @@
   ArgumentsBinding2_t03<Null> c2 = new ArgumentsBinding2_t03<Null>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A01_t01.dart
index 4ba6ecf..cd220e2 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A01_t01.dart
@@ -24,12 +24,16 @@
  */
 
 
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A01_t02.dart
index 37e0e51..dc7ab8e 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A01_t02.dart
@@ -24,17 +24,21 @@
  */
 
 
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T m;
+  T m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A01_t03.dart
index 462e734..ddf6c5e 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A01_t03.dart
@@ -24,17 +24,21 @@
  */
 
 
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  T m;
+  T m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A02_t01.dart
index 9379db9..2727257 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A02_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A02_t02.dart
index 117dfc6..75a0d0c 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A02_t02.dart
@@ -24,15 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
 class ClassMemberSuper1_t02 {
-  dynamic m;
+  dynamic m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A02_t03.dart
index 15e3d6e..535309b 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A02_t03.dart
@@ -24,15 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
 class ClassMemberMixin1_t03 {
-  dynamic m;
+  dynamic m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A03_t01.dart
index 99c407c..7ace860 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A03_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A03_t02.dart
index 03e5200..474ed98 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A03_t02.dart
@@ -24,15 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A03_t03.dart
index 03e394b..a97dbfe 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A03_t03.dart
@@ -24,15 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A04_t01.dart
index 378b213..96863df 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A04_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A04_t02.dart
index 1baaa6f..e7d0a9a 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A04_t02.dart
@@ -24,15 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Null m;
+  Null m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A04_t03.dart
index b9b4b32..9fb64ed 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_class_member_A04_t03.dart
@@ -24,15 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Null m;
+  Null m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A01_t01.dart
index bb9bcde..1c993df 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A01_t01.dart
@@ -24,12 +24,16 @@
  */
 
 
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A02_t01.dart
index 961a654..43f6f55 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A02_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A03_t01.dart
index e2a31ef..e8d9bcf 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A03_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A04_t01.dart
index f30f751..124257f 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_global_variable_A04_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A01_t01.dart
index eb3ac92..750177e 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A01_t01.dart
@@ -24,12 +24,16 @@
  */
 
 
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A02_t01.dart
index 4e47ed4..fa8fce9 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A02_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A03_t01.dart
index d2f7cfa..2ab2eb1 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A03_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A04_t01.dart
index d381526..6ec29ff 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_local_variable_A04_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A01_t01.dart
index 578b6b4..0edbe18 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A01_t01.dart
@@ -24,12 +24,16 @@
  */
 
 
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A02_t01.dart
index fe5ca65..a0152a9 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A02_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A03_t01.dart
index 4fd8c26..a78df81 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A03_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A04_t01.dart
index 4069ce3..ac59ec7 100644
--- a/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/reflexivity_return_value_A04_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A01_t01.dart
index a5e67ec..4939caf 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A01_t01.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -43,33 +45,34 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
 
 
 
-namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-positionalArgumentsFunc1(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+positionalArgumentsFunc1(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(FutureOr<S1> t1) {}
 
-  ArgumentsBindingClass.named(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-  ArgumentsBindingClass.positional(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+  ArgumentsBindingClass.named(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(FutureOr<S1> t1, {FutureOr<S1> t2}) {
+  factory ArgumentsBindingClass.fNamed(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(FutureOr<S1> t1, [FutureOr<S1> t2]) {
+  factory ArgumentsBindingClass.fPositional(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-  static positionalArgumentsStaticMethod(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+  static namedArgumentsStaticMethod(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
-  namedArgumentsMethod(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-  positionalArgumentsMethod(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+  namedArgumentsMethod(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+  positionalArgumentsMethod(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
   set testSetter(FutureOr<S1> val) {}
 }
@@ -77,18 +80,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -119,18 +117,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<FutureOr<S1>>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<FutureOr<S1>>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<FutureOr<S1>> instance2 = new ArgumentsBindingGen<FutureOr<S1>>(t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<S1>>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<S1>>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<S1>>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<S1>>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A01_t02.dart
index 0f8e584..f350459 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A01_t02.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -43,20 +45,22 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   FutureOr<S1> m;
 
-  ArgumentsBindingSuper1_t02(FutureOr<S1> value) {}
-  ArgumentsBindingSuper1_t02.named(FutureOr<S1> value, {FutureOr<S1> val2}) {}
-  ArgumentsBindingSuper1_t02.positional(FutureOr<S1> value, [FutureOr<S1> val2]) {}
+  ArgumentsBindingSuper1_t02(FutureOr<S1> value): m = value {}
+  ArgumentsBindingSuper1_t02.named(FutureOr<S1> value, {FutureOr<S1> val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(FutureOr<S1> value, [FutureOr<S1> val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(FutureOr<S1> val) {}
-  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2]) {}
-  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2}) {}
+  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2 = t1Default}) {}
   FutureOr<S1> get superGetter => m;
   void set superSetter(FutureOr<S1> val) {}
 }
@@ -84,31 +88,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -138,17 +134,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<FutureOr<S1>> c2 =
     new ArgumentsBinding2_t02<FutureOr<S1>>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A01_t03.dart
index fe41fb5..455c853 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A01_t03.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -43,15 +45,17 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   void superTest(FutureOr<S1> val) {}
-  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2]) {}
-  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2}) {}
+  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2 = t1Default}) {}
   FutureOr<S1> get superGetter => m;
   void set superSetter(FutureOr<S1> val) {}
 }
@@ -71,12 +75,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -84,13 +84,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -112,11 +107,7 @@
   ArgumentsBinding2_t03<FutureOr<S1>> c2 = new ArgumentsBinding2_t03<FutureOr<S1>>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A02_t01.dart
index 192c717..3e0bc76 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A02_t01.dart
@@ -28,42 +28,45 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
 
 
 
-namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-positionalArgumentsFunc1(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+positionalArgumentsFunc1(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(FutureOr<S1> t1) {}
 
-  ArgumentsBindingClass.named(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-  ArgumentsBindingClass.positional(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+  ArgumentsBindingClass.named(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(FutureOr<S1> t1, {FutureOr<S1> t2}) {
+  factory ArgumentsBindingClass.fNamed(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(FutureOr<S1> t1, [FutureOr<S1> t2]) {
+  factory ArgumentsBindingClass.fPositional(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-  static positionalArgumentsStaticMethod(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+  static namedArgumentsStaticMethod(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
-  namedArgumentsMethod(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-  positionalArgumentsMethod(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+  namedArgumentsMethod(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+  positionalArgumentsMethod(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
   set testSetter(FutureOr<S1> val) {}
 }
@@ -71,18 +74,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -113,18 +111,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<FutureOr<S1>>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<FutureOr<S1>>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<FutureOr<S1>> instance2 = new ArgumentsBindingGen<FutureOr<S1>>(t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<S1>>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<S1>>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<S1>>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<S1>>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A02_t02.dart
index 3c54d66..e6aec5c 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A02_t02.dart
@@ -28,29 +28,33 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   FutureOr<S1> m;
 
-  ArgumentsBindingSuper1_t02(FutureOr<S1> value) {}
-  ArgumentsBindingSuper1_t02.named(FutureOr<S1> value, {FutureOr<S1> val2}) {}
-  ArgumentsBindingSuper1_t02.positional(FutureOr<S1> value, [FutureOr<S1> val2]) {}
+  ArgumentsBindingSuper1_t02(FutureOr<S1> value): m = value {}
+  ArgumentsBindingSuper1_t02.named(FutureOr<S1> value, {FutureOr<S1> val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(FutureOr<S1> value, [FutureOr<S1> val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(FutureOr<S1> val) {}
-  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2]) {}
-  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2}) {}
+  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2 = t1Default}) {}
   FutureOr<S1> get superGetter => m;
   void set superSetter(FutureOr<S1> val) {}
 }
@@ -78,31 +82,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -132,17 +128,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<FutureOr<S1>> c2 =
     new ArgumentsBinding2_t02<FutureOr<S1>>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A02_t03.dart
index 74bd907..f09d679 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A02_t03.dart
@@ -28,24 +28,28 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   void superTest(FutureOr<S1> val) {}
-  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2]) {}
-  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2}) {}
+  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2 = t1Default}) {}
   FutureOr<S1> get superGetter => m;
   void set superSetter(FutureOr<S1> val) {}
 }
@@ -65,12 +69,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -78,13 +78,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -106,11 +101,7 @@
   ArgumentsBinding2_t03<FutureOr<S1>> c2 = new ArgumentsBinding2_t03<FutureOr<S1>>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A03_t01.dart
index 9052d9f..d1e42c0 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A03_t01.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,33 +47,34 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
 
 
 
-namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-positionalArgumentsFunc1(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+positionalArgumentsFunc1(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(FutureOr<S1> t1) {}
 
-  ArgumentsBindingClass.named(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-  ArgumentsBindingClass.positional(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+  ArgumentsBindingClass.named(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(FutureOr<S1> t1, {FutureOr<S1> t2}) {
+  factory ArgumentsBindingClass.fNamed(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(FutureOr<S1> t1, [FutureOr<S1> t2]) {
+  factory ArgumentsBindingClass.fPositional(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-  static positionalArgumentsStaticMethod(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+  static namedArgumentsStaticMethod(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
-  namedArgumentsMethod(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-  positionalArgumentsMethod(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+  namedArgumentsMethod(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+  positionalArgumentsMethod(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
   set testSetter(FutureOr<S1> val) {}
 }
@@ -79,18 +82,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -121,18 +119,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<FutureOr<S1>>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<FutureOr<S1>>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<FutureOr<S1>> instance2 = new ArgumentsBindingGen<FutureOr<S1>>(t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<S1>>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<S1>>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<S1>>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<S1>>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A03_t02.dart
index 630ab5f..cbbf0e8 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A03_t02.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,20 +47,22 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   FutureOr<S1> m;
 
-  ArgumentsBindingSuper1_t02(FutureOr<S1> value) {}
-  ArgumentsBindingSuper1_t02.named(FutureOr<S1> value, {FutureOr<S1> val2}) {}
-  ArgumentsBindingSuper1_t02.positional(FutureOr<S1> value, [FutureOr<S1> val2]) {}
+  ArgumentsBindingSuper1_t02(FutureOr<S1> value): m = value {}
+  ArgumentsBindingSuper1_t02.named(FutureOr<S1> value, {FutureOr<S1> val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(FutureOr<S1> value, [FutureOr<S1> val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(FutureOr<S1> val) {}
-  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2]) {}
-  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2}) {}
+  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2 = t1Default}) {}
   FutureOr<S1> get superGetter => m;
   void set superSetter(FutureOr<S1> val) {}
 }
@@ -86,31 +90,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -140,17 +136,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<FutureOr<S1>> c2 =
     new ArgumentsBinding2_t02<FutureOr<S1>>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A03_t03.dart
index 5e8fdf0..377853b 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A03_t03.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,15 +47,17 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   void superTest(FutureOr<S1> val) {}
-  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2]) {}
-  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2}) {}
+  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2 = t1Default}) {}
   FutureOr<S1> get superGetter => m;
   void set superSetter(FutureOr<S1> val) {}
 }
@@ -73,12 +77,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -86,13 +86,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -114,11 +109,7 @@
   ArgumentsBinding2_t03<FutureOr<S1>> c2 = new ArgumentsBinding2_t03<FutureOr<S1>>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A04_t01.dart
index 350ab7e..a982da0 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A04_t01.dart
@@ -28,9 +28,12 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -39,33 +42,34 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
 
 
 
-namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-positionalArgumentsFunc1(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+positionalArgumentsFunc1(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(FutureOr<S1> t1) {}
 
-  ArgumentsBindingClass.named(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-  ArgumentsBindingClass.positional(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+  ArgumentsBindingClass.named(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(FutureOr<S1> t1, {FutureOr<S1> t2}) {
+  factory ArgumentsBindingClass.fNamed(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(FutureOr<S1> t1, [FutureOr<S1> t2]) {
+  factory ArgumentsBindingClass.fPositional(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-  static positionalArgumentsStaticMethod(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+  static namedArgumentsStaticMethod(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
-  namedArgumentsMethod(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-  positionalArgumentsMethod(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+  namedArgumentsMethod(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+  positionalArgumentsMethod(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
   set testSetter(FutureOr<S1> val) {}
 }
@@ -73,18 +77,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -115,18 +114,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<FutureOr<S1>>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<FutureOr<S1>>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<FutureOr<S1>> instance2 = new ArgumentsBindingGen<FutureOr<S1>>(t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<S1>>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<S1>>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<FutureOr<S1>>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<FutureOr<S1>>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A04_t02.dart
index e957195..7448acb 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A04_t02.dart
@@ -28,9 +28,12 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -39,20 +42,22 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   FutureOr<S1> m;
 
-  ArgumentsBindingSuper1_t02(FutureOr<S1> value) {}
-  ArgumentsBindingSuper1_t02.named(FutureOr<S1> value, {FutureOr<S1> val2}) {}
-  ArgumentsBindingSuper1_t02.positional(FutureOr<S1> value, [FutureOr<S1> val2]) {}
+  ArgumentsBindingSuper1_t02(FutureOr<S1> value): m = value {}
+  ArgumentsBindingSuper1_t02.named(FutureOr<S1> value, {FutureOr<S1> val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(FutureOr<S1> value, [FutureOr<S1> val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(FutureOr<S1> val) {}
-  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2]) {}
-  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2}) {}
+  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2 = t1Default}) {}
   FutureOr<S1> get superGetter => m;
   void set superSetter(FutureOr<S1> val) {}
 }
@@ -80,31 +85,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -134,17 +131,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<FutureOr<S1>> c2 =
     new ArgumentsBinding2_t02<FutureOr<S1>>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<FutureOr<S1>>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A04_t03.dart
index 6fec67c..f4fc53a 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_arguments_binding_A04_t03.dart
@@ -28,9 +28,12 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -39,15 +42,17 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   void superTest(FutureOr<S1> val) {}
-  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2]) {}
-  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2}) {}
+  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2 = t1Default}) {}
   FutureOr<S1> get superGetter => m;
   void set superSetter(FutureOr<S1> val) {}
 }
@@ -67,12 +72,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -80,13 +81,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -108,11 +104,7 @@
   ArgumentsBinding2_t03<FutureOr<S1>> c2 = new ArgumentsBinding2_t03<FutureOr<S1>>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A01_t01.dart
index b03fd99..d231442 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A01_t01.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -43,6 +45,8 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A01_t02.dart
index 35a3d5c..389e725 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A01_t02.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -43,11 +45,13 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A01_t03.dart
index e403bbc..e0dabe2 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A01_t03.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -43,11 +45,13 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A02_t01.dart
index e6206dd..bec31a1 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A02_t01.dart
@@ -28,15 +28,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A02_t02.dart
index 8df361b..983f354 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A02_t02.dart
@@ -28,20 +28,24 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A02_t03.dart
index 9ebbb9e..25eaac0 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A02_t03.dart
@@ -28,20 +28,24 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A03_t01.dart
index 407f42f..f7e3980 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A03_t01.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,6 +47,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A03_t02.dart
index f7f58b0..31cab62 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A03_t02.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,11 +47,13 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A03_t03.dart
index 6eed77c..3c64596 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A03_t03.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,11 +47,13 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A04_t01.dart
index a5778ec..a22d9a1 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A04_t01.dart
@@ -28,9 +28,12 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -39,6 +42,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A04_t02.dart
index f3319f4..809ff9f 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A04_t02.dart
@@ -28,9 +28,12 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -39,11 +42,13 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A04_t03.dart
index 449d029..482c55f 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_class_member_A04_t03.dart
@@ -28,9 +28,12 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -39,11 +42,13 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_fail_A01_t01.dart
index 06ff4d3..c5d973c 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_fail_A01_t01.dart
@@ -31,39 +31,43 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
 
 
 
-namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-positionalArgumentsFunc1(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+
+namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+positionalArgumentsFunc1(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(FutureOr<S1> t1) {}
 
-    ArgumentsBindingClass.named(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-    ArgumentsBindingClass.positional(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+    ArgumentsBindingClass.named(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(FutureOr<S1> t1, {FutureOr<S1> t2}) {
+    factory ArgumentsBindingClass.fNamed(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(FutureOr<S1> t1, [FutureOr<S1> t2]) {
+    factory ArgumentsBindingClass.fPositional(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-    static positionalArgumentsStaticMethod(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+    static namedArgumentsStaticMethod(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
-    namedArgumentsMethod(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-    positionalArgumentsMethod(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+    namedArgumentsMethod(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+    positionalArgumentsMethod(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
     set testSetter(FutureOr<S1> val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_fail_A02_t01.dart
index 6ec8400..ba211ae 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_fail_A02_t01.dart
@@ -31,10 +31,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -42,30 +44,32 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
 
 
 
-namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-positionalArgumentsFunc1(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+
+namedArgumentsFunc1(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+positionalArgumentsFunc1(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(FutureOr<S1> t1) {}
 
-    ArgumentsBindingClass.named(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-    ArgumentsBindingClass.positional(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+    ArgumentsBindingClass.named(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(FutureOr<S1> t1, {FutureOr<S1> t2}) {
+    factory ArgumentsBindingClass.fNamed(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(FutureOr<S1> t1, [FutureOr<S1> t2]) {
+    factory ArgumentsBindingClass.fPositional(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-    static positionalArgumentsStaticMethod(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+    static namedArgumentsStaticMethod(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
-    namedArgumentsMethod(FutureOr<S1> t1, {FutureOr<S1> t2}) {}
-    positionalArgumentsMethod(FutureOr<S1> t1, [FutureOr<S1> t2]) {}
+    namedArgumentsMethod(FutureOr<S1> t1, {FutureOr<S1> t2 = t1Default}) {}
+    positionalArgumentsMethod(FutureOr<S1> t1, [FutureOr<S1> t2 = t1Default]) {}
 
     set testSetter(FutureOr<S1> val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_mixin_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_mixin_fail_A01_t01.dart
index c02b4f2..e366a3e 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_mixin_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_mixin_fail_A01_t01.dart
@@ -32,22 +32,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(FutureOr<S1> val) {}
-  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2]) {}
-  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2}) {}
+  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2 = t1Default}) {}
   FutureOr<S1> get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(FutureOr<S1> val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_mixin_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_mixin_fail_A02_t01.dart
index 9d495a9..794c5c7 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_mixin_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_mixin_fail_A02_t01.dart
@@ -32,10 +32,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -43,13 +45,15 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(FutureOr<S1> val) {}
-  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2]) {}
-  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2}) {}
+  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2 = t1Default}) {}
   FutureOr<S1> get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(FutureOr<S1> val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_super_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_super_fail_A01_t01.dart
index 8e16a1b..c47c4e0 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_super_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_super_fail_A01_t01.dart
@@ -32,29 +32,33 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   FutureOr<S1> m;
 
-  ArgumentsBindingSuper1_t02(FutureOr<S1> value) {}
-  ArgumentsBindingSuper1_t02.named(FutureOr<S1> value, {FutureOr<S1> val2}) {}
-  ArgumentsBindingSuper1_t02.positional(FutureOr<S1> value, [FutureOr<S1> val2]) {}
+  ArgumentsBindingSuper1_t02(FutureOr<S1> value): m = value {}
+  ArgumentsBindingSuper1_t02.named(FutureOr<S1> value, {FutureOr<S1> val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(FutureOr<S1> value, [FutureOr<S1> val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(FutureOr<S1> val) {}
-  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2]) {}
-  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2}) {}
+  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2 = t1Default}) {}
   FutureOr<S1> get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(FutureOr<S1> val) {}
 }
@@ -67,7 +71,7 @@
   ArgumentsBinding1_t02.c4(FutureOr<S1> t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(FutureOr<S1> t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_super_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_super_fail_A02_t01.dart
index 13e59fa..e132bd3 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_super_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_arguments_binding_super_fail_A02_t01.dart
@@ -32,10 +32,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -43,20 +45,22 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   FutureOr<S1> m;
 
-  ArgumentsBindingSuper1_t02(FutureOr<S1> value) {}
-  ArgumentsBindingSuper1_t02.named(FutureOr<S1> value, {FutureOr<S1> val2}) {}
-  ArgumentsBindingSuper1_t02.positional(FutureOr<S1> value, [FutureOr<S1> val2]) {}
+  ArgumentsBindingSuper1_t02(FutureOr<S1> value): m = value {}
+  ArgumentsBindingSuper1_t02.named(FutureOr<S1> value, {FutureOr<S1> val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(FutureOr<S1> value, [FutureOr<S1> val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(FutureOr<S1> val) {}
-  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2]) {}
-  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2}) {}
+  void superTestPositioned(FutureOr<S1> val, [FutureOr<S1> val2 = t1Default]) {}
+  void superTestNamed(FutureOr<S1> val, {FutureOr<S1> val2 = t1Default}) {}
   FutureOr<S1> get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(FutureOr<S1> val) {}
 }
@@ -69,7 +73,7 @@
   ArgumentsBinding1_t02.c4(FutureOr<S1> t1, X0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(FutureOr<S1> t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_fail_A01_t01.dart
index 8f95763..b29c078 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_fail_A01_t01.dart
@@ -32,20 +32,24 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberTestStatic {
-  static FutureOr<S1> s;
+  static FutureOr<S1> s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -63,7 +67,7 @@
 }
 
 class ClassMemberTestPublic {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -85,7 +89,7 @@
 }
 
 class ClassMemberTestPrivate {
-  FutureOr<S1> _m;
+  FutureOr<S1> _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -126,4 +130,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_fail_A02_t01.dart
index dfd86f6..0d3cabe 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_fail_A02_t01.dart
@@ -32,10 +32,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -43,11 +45,13 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberTestStatic {
-  static FutureOr<S1> s;
+  static FutureOr<S1> s = t1Default;
 
   ClassMemberTestStatic(X0 val) {
     s = val; //# 01: compile-time error
@@ -65,7 +69,7 @@
 }
 
 class ClassMemberTestPublic {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   ClassMemberTestPublic(X0 val) {
     m = val; //# 05: compile-time error
@@ -87,7 +91,7 @@
 }
 
 class ClassMemberTestPrivate {
-  FutureOr<S1> _m;
+  FutureOr<S1> _m = t1Default;
 
   ClassMemberTestPrivate(X0 val) {
     _m = val; //# 10: compile-time error
@@ -128,4 +132,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_mixin_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_mixin_fail_A01_t01.dart
index 29f8e4f..d09e485 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_mixin_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_mixin_fail_A01_t01.dart
@@ -32,20 +32,24 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
   void set superSetter(FutureOr<S1> val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_mixin_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_mixin_fail_A02_t01.dart
index 8e3568e..f0ce953 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_mixin_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_mixin_fail_A02_t01.dart
@@ -32,10 +32,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -43,11 +45,13 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
   void set superSetter(FutureOr<S1> val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_super_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_super_fail_A01_t01.dart
index a593800..59b58e7 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_super_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_super_fail_A01_t01.dart
@@ -32,20 +32,24 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_super_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_super_fail_A02_t01.dart
index 0679df8..e847f24 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_super_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_class_member_super_fail_A02_t01.dart
@@ -32,10 +32,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -43,11 +45,13 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  FutureOr<S1> m;
+  FutureOr<S1> m = t1Default;
 
   ClassMemberSuper1_t02(X0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_global_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_global_variable_fail_A01_t01.dart
index 587d46a..ee416fd 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_global_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_global_variable_fail_A01_t01.dart
@@ -32,15 +32,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_global_variable_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_global_variable_fail_A02_t01.dart
index ab87a50..be3af7f 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_global_variable_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_global_variable_fail_A02_t01.dart
@@ -32,10 +32,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -43,6 +45,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_local_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_local_variable_fail_A01_t01.dart
index 5cbbcc3..65a4042 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_local_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_local_variable_fail_A01_t01.dart
@@ -32,44 +32,43 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    FutureOr<S1> t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    FutureOr<S1> t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    FutureOr<S1> t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    FutureOr<S1> t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    FutureOr<S1> t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    FutureOr<S1> t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  FutureOr<S1> t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  FutureOr<S1> t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    FutureOr<S1> t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    FutureOr<S1> t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_local_variable_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_local_variable_fail_A02_t01.dart
index 8e4c73c..48e277f 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_local_variable_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_local_variable_fail_A02_t01.dart
@@ -32,10 +32,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -43,35 +45,32 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    FutureOr<S1> t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    FutureOr<S1> t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    FutureOr<S1> t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    FutureOr<S1> t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    FutureOr<S1> t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    FutureOr<S1> t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  FutureOr<S1> t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  FutureOr<S1> t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    FutureOr<S1> t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    FutureOr<S1> t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_return_value_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_return_value_fail_A01_t01.dart
index 9706170..d399fa8 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_return_value_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_return_value_fail_A01_t01.dart
@@ -31,15 +31,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_return_value_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_return_value_fail_A02_t01.dart
index 17dbd16..ceabca1 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_return_value_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_fail_return_value_fail_A02_t01.dart
@@ -31,10 +31,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -42,6 +44,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A01_t01.dart
index 250a9d7..5b305a0 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A01_t01.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -43,6 +45,8 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A02_t01.dart
index 85f1f16..64e0bac 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A02_t01.dart
@@ -28,15 +28,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A03_t01.dart
index 367b3f1..3c27605 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A03_t01.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,6 +47,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A04_t01.dart
index 0adb872..19db0e1 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_global_variable_A04_t01.dart
@@ -28,9 +28,12 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -39,6 +42,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A01_t01.dart
index 03f3109..ca2e025 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A01_t01.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -43,6 +45,8 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A02_t01.dart
index 87136d7..b488cbe 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A02_t01.dart
@@ -28,15 +28,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A03_t01.dart
index 4c3ea9c..be32f7e 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A03_t01.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,6 +47,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A04_t01.dart
index b77000c..10115c4 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_local_variable_A04_t01.dart
@@ -28,9 +28,12 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -39,6 +42,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A01_t01.dart
index 2552d2d..a6ccfe3 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A01_t01.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -43,6 +45,8 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A02_t01.dart
index 255fe96..527849e 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A02_t01.dart
@@ -28,15 +28,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A03_t01.dart
index eb0ca44..644f690 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A03_t01.dart
@@ -28,10 +28,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -45,6 +47,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A04_t01.dart
index 84c2c4e..417a85e 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_FutureOr_return_value_A04_t01.dart
@@ -28,9 +28,12 @@
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -39,6 +42,8 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_Object_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_Object_arguments_binding_A01_t01.dart
index acc11dd..ad49443 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_Object_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_Object_arguments_binding_A01_t01.dart
@@ -45,30 +45,29 @@
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
+namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
+positionalArgumentsFunc1(Object t1, [Object t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Object t1) {}
 
-  ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-  ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+  ArgumentsBindingClass.named(Object t1, {Object t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Object t1, [Object t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-  static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+  static namedArgumentsStaticMethod(Object t1, {Object t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Object t1, [Object t2 = t1Default]) {}
 
-  namedArgumentsMethod(Object t1, {Object t2}) {}
-  positionalArgumentsMethod(Object t1, [Object t2]) {}
+  namedArgumentsMethod(Object t1, {Object t2 = t1Default}) {}
+  positionalArgumentsMethod(Object t1, [Object t2 = t1Default]) {}
 
   set testSetter(Object val) {}
 }
@@ -76,18 +75,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -121,18 +115,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Object>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Object>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Object> instance2 = new ArgumentsBindingGen<Object>(t0Instance);
   instance2 = new ArgumentsBindingGen<Object>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Object>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_Object_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_Object_arguments_binding_A01_t02.dart
index c5bf76a..a84bfab 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_Object_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_Object_arguments_binding_A01_t02.dart
@@ -48,14 +48,14 @@
 class ArgumentsBindingSuper1_t02 {
   Object m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object value, {Object val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => m;
   void set superSetter(Object val) {}
 }
@@ -83,31 +83,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -140,17 +132,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Object> c2 =
     new ArgumentsBinding2_t02<Object>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Object>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Object>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_Object_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_Object_arguments_binding_A01_t03.dart
index 87591d7..7ebf3bf 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_Object_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_Object_arguments_binding_A01_t03.dart
@@ -46,11 +46,11 @@
 
 
 class ArgumentsBindingMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => m;
   void set superSetter(Object val) {}
 }
@@ -70,12 +70,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -83,13 +79,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -114,12 +105,8 @@
   ArgumentsBinding2_t03<Object> c2 = new ArgumentsBinding2_t03<Object>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_Object_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_Object_class_member_A01_t02.dart
index 67e099b..052106c 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_Object_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_Object_class_member_A01_t02.dart
@@ -46,7 +46,7 @@
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_Object_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_Object_class_member_A01_t03.dart
index 64b1269..25cbce5 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_Object_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_Object_class_member_A01_t03.dart
@@ -46,7 +46,7 @@
 
 
 class ClassMemberMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A02_t01.dart
index 6947285..3f6fd06 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A02_t01.dart
@@ -39,34 +39,35 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
 
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
+positionalArgumentsFunc1(Object t1, [Object t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Object t1) {}
 
-  ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-  ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+  ArgumentsBindingClass.named(Object t1, {Object t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Object t1, [Object t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-  static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+  static namedArgumentsStaticMethod(Object t1, {Object t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Object t1, [Object t2 = t1Default]) {}
 
-  namedArgumentsMethod(Object t1, {Object t2}) {}
-  positionalArgumentsMethod(Object t1, [Object t2]) {}
+  namedArgumentsMethod(Object t1, {Object t2 = t1Default}) {}
+  positionalArgumentsMethod(Object t1, [Object t2 = t1Default]) {}
 
   set testSetter(Object val) {}
 }
@@ -74,18 +75,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -120,18 +116,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Object>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Object>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Object> instance2 = new ArgumentsBindingGen<Object>(t0Instance);
   instance2 = new ArgumentsBindingGen<Object>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Object>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A02_t02.dart
index ef1c0cf..9d018da 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A02_t02.dart
@@ -39,6 +39,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
@@ -46,14 +48,14 @@
 class ArgumentsBindingSuper1_t02 {
   Object m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object value, {Object val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => m;
   void set superSetter(Object val) {}
 }
@@ -81,31 +83,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -139,17 +133,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Object> c2 =
     new ArgumentsBinding2_t02<Object>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Object>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Object>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A02_t03.dart
index 21a23c6..044955e 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A02_t03.dart
@@ -39,16 +39,18 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => m;
   void set superSetter(Object val) {}
 }
@@ -68,12 +70,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -81,13 +79,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -113,12 +106,8 @@
   ArgumentsBinding2_t03<Object> c2 = new ArgumentsBinding2_t03<Object>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 
   }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A03_t01.dart
index 7ef1b93..b3403c1 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A03_t01.dart
@@ -39,34 +39,35 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
 
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
+positionalArgumentsFunc1(Object t1, [Object t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Object t1) {}
 
-  ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-  ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+  ArgumentsBindingClass.named(Object t1, {Object t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Object t1, [Object t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-  static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+  static namedArgumentsStaticMethod(Object t1, {Object t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Object t1, [Object t2 = t1Default]) {}
 
-  namedArgumentsMethod(Object t1, {Object t2}) {}
-  positionalArgumentsMethod(Object t1, [Object t2]) {}
+  namedArgumentsMethod(Object t1, {Object t2 = t1Default}) {}
+  positionalArgumentsMethod(Object t1, [Object t2 = t1Default]) {}
 
   set testSetter(Object val) {}
 }
@@ -74,18 +75,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -120,18 +116,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Object>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Object>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Object> instance2 = new ArgumentsBindingGen<Object>(t0Instance);
   instance2 = new ArgumentsBindingGen<Object>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Object>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A03_t02.dart
index 5c6754d..378c4dc 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A03_t02.dart
@@ -39,6 +39,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
@@ -46,14 +48,14 @@
 class ArgumentsBindingSuper1_t02 {
   Object m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object value, {Object val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => m;
   void set superSetter(Object val) {}
 }
@@ -81,31 +83,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -139,17 +133,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Object> c2 =
     new ArgumentsBinding2_t02<Object>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Object>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Object>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A03_t03.dart
index 4ed5dee..1966b95 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A03_t03.dart
@@ -39,16 +39,18 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => m;
   void set superSetter(Object val) {}
 }
@@ -68,12 +70,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -81,13 +79,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -113,12 +106,8 @@
   ArgumentsBinding2_t03<Object> c2 = new ArgumentsBinding2_t03<Object>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 
   }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A04_t01.dart
index e95d3d5..c7ca037 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A04_t01.dart
@@ -40,33 +40,34 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
+positionalArgumentsFunc1(Object t1, [Object t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Object t1) {}
 
-  ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-  ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+  ArgumentsBindingClass.named(Object t1, {Object t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Object t1, [Object t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-  static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+  static namedArgumentsStaticMethod(Object t1, {Object t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Object t1, [Object t2 = t1Default]) {}
 
-  namedArgumentsMethod(Object t1, {Object t2}) {}
-  positionalArgumentsMethod(Object t1, [Object t2]) {}
+  namedArgumentsMethod(Object t1, {Object t2 = t1Default}) {}
+  positionalArgumentsMethod(Object t1, [Object t2 = t1Default]) {}
 
   set testSetter(Object val) {}
 }
@@ -74,18 +75,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -116,18 +112,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Object>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Object>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Object> instance2 = new ArgumentsBindingGen<Object>(t0Instance);
   instance2 = new ArgumentsBindingGen<Object>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Object>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A04_t02.dart
index 4e2166b..3c14801 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A04_t02.dart
@@ -40,20 +40,22 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   Object m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object value, {Object val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => m;
   void set superSetter(Object val) {}
 }
@@ -81,31 +83,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -135,17 +129,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Object> c2 =
     new ArgumentsBinding2_t02<Object>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Object>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Object>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A04_t03.dart
index 464bea7..f62ac56 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A04_t03.dart
@@ -40,15 +40,17 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => m;
   void set superSetter(Object val) {}
 }
@@ -68,12 +70,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -81,13 +79,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -109,11 +102,7 @@
   ArgumentsBinding2_t03<Object> c2 = new ArgumentsBinding2_t03<Object>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A05_t01.dart
index 0afbb97..2042a07 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A05_t01.dart
@@ -40,33 +40,34 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
+positionalArgumentsFunc1(Object t1, [Object t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Object t1) {}
 
-  ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-  ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+  ArgumentsBindingClass.named(Object t1, {Object t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Object t1, [Object t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-  static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+  static namedArgumentsStaticMethod(Object t1, {Object t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Object t1, [Object t2 = t1Default]) {}
 
-  namedArgumentsMethod(Object t1, {Object t2}) {}
-  positionalArgumentsMethod(Object t1, [Object t2]) {}
+  namedArgumentsMethod(Object t1, {Object t2 = t1Default}) {}
+  positionalArgumentsMethod(Object t1, [Object t2 = t1Default]) {}
 
   set testSetter(Object val) {}
 }
@@ -74,18 +75,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -116,18 +112,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Object>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Object>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Object> instance2 = new ArgumentsBindingGen<Object>(t0Instance);
   instance2 = new ArgumentsBindingGen<Object>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Object>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A05_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A05_t02.dart
index 657082f..e1f3759 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A05_t02.dart
@@ -40,20 +40,22 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   Object m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object value, {Object val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => m;
   void set superSetter(Object val) {}
 }
@@ -81,31 +83,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -135,17 +129,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Object> c2 =
     new ArgumentsBinding2_t02<Object>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Object>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Object>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A05_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A05_t03.dart
index b1d7008..5663629 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_arguments_binding_A05_t03.dart
@@ -40,15 +40,17 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => m;
   void set superSetter(Object val) {}
 }
@@ -68,12 +70,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -81,13 +79,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -109,11 +102,7 @@
   ArgumentsBinding2_t03<Object> c2 = new ArgumentsBinding2_t03<Object>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A02_t01.dart
index 1f86e1e..0a42cef 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A02_t01.dart
@@ -39,6 +39,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A02_t02.dart
index d20308d..c40edce 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A02_t02.dart
@@ -39,12 +39,14 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A02_t03.dart
index 1216b43..916270a 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A02_t03.dart
@@ -39,12 +39,14 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A03_t01.dart
index 7305968..e8a7838 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A03_t01.dart
@@ -39,6 +39,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A03_t02.dart
index 1ec2814..3954a0a 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A03_t02.dart
@@ -39,12 +39,14 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A03_t03.dart
index 7885772..91973ca 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A03_t03.dart
@@ -39,12 +39,14 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A04_t01.dart
index 1753ab1..2f77969 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A04_t01.dart
@@ -40,6 +40,8 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A04_t02.dart
index 815f8d2..efa9e84 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A04_t02.dart
@@ -40,11 +40,13 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A04_t03.dart
index 87bb273..126d881 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A04_t03.dart
@@ -40,11 +40,13 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A05_t01.dart
index 9cb9e6e..6560d73 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A05_t01.dart
@@ -40,6 +40,8 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A05_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A05_t02.dart
index 82f9041..409238e 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A05_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A05_t02.dart
@@ -40,11 +40,13 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A05_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A05_t03.dart
index e3bd9de..c1335ef 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A05_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_class_member_A05_t03.dart
@@ -40,11 +40,13 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Object m;
+  Object m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A01_t01.dart
index 22bf1d9..880410b 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A01_t01.dart
@@ -38,34 +38,36 @@
 class B {}
 class T0 extends B {}
 
-T0 t0Instance = new T0();
+T0? t0Instance = new T0();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
 
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
+
+namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
+positionalArgumentsFunc1(Object t1, [Object t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(Object t1) {}
 
-    ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-    ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+    ArgumentsBindingClass.named(Object t1, {Object t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(Object t1, [Object t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+    factory ArgumentsBindingClass.fNamed(Object t1, {Object t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+    factory ArgumentsBindingClass.fPositional(Object t1, [Object t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-    static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+    static namedArgumentsStaticMethod(Object t1, {Object t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(Object t1, [Object t2 = t1Default]) {}
 
-    namedArgumentsMethod(Object t1, {Object t2}) {}
-    positionalArgumentsMethod(Object t1, [Object t2]) {}
+    namedArgumentsMethod(Object t1, {Object t2 = t1Default}) {}
+    positionalArgumentsMethod(Object t1, [Object t2 = t1Default]) {}
 
     set testSetter(Object val) {}
 }
@@ -75,7 +77,7 @@
 }                                           //# 23: compile-time error
 
 class ArgumentsBindingDesc extends ArgumentsBindingClassSuper { //# 23: compile-time error
-  ArgumentsBindingDesc(T0 t0) : super (t0) {}                  //# 23: compile-time error
+  ArgumentsBindingDesc(T0? t0) : super (t0) {}                  //# 23: compile-time error
 }                                                               //# 23: compile-time error
 
 
@@ -109,5 +111,5 @@
 }
 
 main() {
-  test<T0>(t0Instance);
+  test<T0?>(t0Instance);
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A02_t01.dart
index 2708581..9100c5d 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A02_t01.dart
@@ -41,31 +41,33 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
 
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
+
+namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
+positionalArgumentsFunc1(Object t1, [Object t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(Object t1) {}
 
-    ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-    ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+    ArgumentsBindingClass.named(Object t1, {Object t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(Object t1, [Object t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+    factory ArgumentsBindingClass.fNamed(Object t1, {Object t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+    factory ArgumentsBindingClass.fPositional(Object t1, [Object t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-    static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+    static namedArgumentsStaticMethod(Object t1, {Object t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(Object t1, [Object t2 = t1Default]) {}
 
-    namedArgumentsMethod(Object t1, {Object t2}) {}
-    positionalArgumentsMethod(Object t1, [Object t2]) {}
+    namedArgumentsMethod(Object t1, {Object t2 = t1Default}) {}
+    positionalArgumentsMethod(Object t1, [Object t2 = t1Default]) {}
 
     set testSetter(Object val) {}
 }
@@ -75,7 +77,7 @@
 }                                           //# 23: compile-time error
 
 class ArgumentsBindingDesc extends ArgumentsBindingClassSuper { //# 23: compile-time error
-  ArgumentsBindingDesc(S t0) : super (t0) {}                  //# 23: compile-time error
+  ArgumentsBindingDesc(S? t0) : super (t0) {}                  //# 23: compile-time error
 }                                                               //# 23: compile-time error
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A03_t01.dart
index 5307039..431f3e0 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A03_t01.dart
@@ -47,27 +47,27 @@
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
+namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
+positionalArgumentsFunc1(Object t1, [Object t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(Object t1) {}
 
-    ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-    ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+    ArgumentsBindingClass.named(Object t1, {Object t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(Object t1, [Object t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+    factory ArgumentsBindingClass.fNamed(Object t1, {Object t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+    factory ArgumentsBindingClass.fPositional(Object t1, [Object t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-    static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+    static namedArgumentsStaticMethod(Object t1, {Object t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(Object t1, [Object t2 = t1Default]) {}
 
-    namedArgumentsMethod(Object t1, {Object t2}) {}
-    positionalArgumentsMethod(Object t1, [Object t2]) {}
+    namedArgumentsMethod(Object t1, {Object t2 = t1Default}) {}
+    positionalArgumentsMethod(Object t1, [Object t2 = t1Default]) {}
 
     set testSetter(Object val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A04_t01.dart
index b023fdb..121538e 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A04_t01.dart
@@ -42,30 +42,32 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
+
+namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
+positionalArgumentsFunc1(Object t1, [Object t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(Object t1) {}
 
-    ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-    ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+    ArgumentsBindingClass.named(Object t1, {Object t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(Object t1, [Object t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+    factory ArgumentsBindingClass.fNamed(Object t1, {Object t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+    factory ArgumentsBindingClass.fPositional(Object t1, [Object t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-    static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+    static namedArgumentsStaticMethod(Object t1, {Object t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(Object t1, [Object t2 = t1Default]) {}
 
-    namedArgumentsMethod(Object t1, {Object t2}) {}
-    positionalArgumentsMethod(Object t1, [Object t2]) {}
+    namedArgumentsMethod(Object t1, {Object t2 = t1Default}) {}
+    positionalArgumentsMethod(Object t1, [Object t2 = t1Default]) {}
 
     set testSetter(Object val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A05_t01.dart
index b29a50f..e4cf42f 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A05_t01.dart
@@ -36,35 +36,37 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
+
+namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
+positionalArgumentsFunc1(Object t1, [Object t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(Object t1) {}
 
-    ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-    ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+    ArgumentsBindingClass.named(Object t1, {Object t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(Object t1, [Object t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+    factory ArgumentsBindingClass.fNamed(Object t1, {Object t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+    factory ArgumentsBindingClass.fPositional(Object t1, [Object t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-    static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+    static namedArgumentsStaticMethod(Object t1, {Object t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(Object t1, [Object t2 = t1Default]) {}
 
-    namedArgumentsMethod(Object t1, {Object t2}) {}
-    positionalArgumentsMethod(Object t1, [Object t2]) {}
+    namedArgumentsMethod(Object t1, {Object t2 = t1Default}) {}
+    positionalArgumentsMethod(Object t1, [Object t2 = t1Default]) {}
 
     set testSetter(Object val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A06_t01.dart
index a875985..83cb92a 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_fail_A06_t01.dart
@@ -36,35 +36,37 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
+
+namedArgumentsFunc1(Object t1, {Object t2 = t1Default}) {}
+positionalArgumentsFunc1(Object t1, [Object t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(Object t1) {}
 
-    ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-    ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+    ArgumentsBindingClass.named(Object t1, {Object t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(Object t1, [Object t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+    factory ArgumentsBindingClass.fNamed(Object t1, {Object t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+    factory ArgumentsBindingClass.fPositional(Object t1, [Object t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-    static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+    static namedArgumentsStaticMethod(Object t1, {Object t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(Object t1, [Object t2 = t1Default]) {}
 
-    namedArgumentsMethod(Object t1, {Object t2}) {}
-    positionalArgumentsMethod(Object t1, [Object t2]) {}
+    namedArgumentsMethod(Object t1, {Object t2 = t1Default}) {}
+    positionalArgumentsMethod(Object t1, [Object t2 = t1Default]) {}
 
     set testSetter(Object val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A01_t01.dart
index 6c1b31e..a501350 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A01_t01.dart
@@ -39,17 +39,19 @@
 class B {}
 class T0 extends B {}
 
-T0 t0Instance = new T0();
+T0? t0Instance = new T0();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(Object val) {}
 }
@@ -117,5 +119,5 @@
 }
 
 main() {
-  test<T0>(t0Instance);
+  test<T0?>(t0Instance);
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A02_t01.dart
index 78b4c45..0826524 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A02_t01.dart
@@ -42,14 +42,16 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(Object val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A03_t01.dart
index c576732..94912ef 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A03_t01.dart
@@ -50,8 +50,8 @@
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(Object val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A04_t01.dart
index 0a7d8aa..9ffec0b 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A04_t01.dart
@@ -43,13 +43,15 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(Object val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A05_t01.dart
index 31b0fce..f6e35de 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A05_t01.dart
@@ -37,18 +37,20 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(Object val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A06_t01.dart
index 4a23052..a6dd275 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_mixin_fail_A06_t01.dart
@@ -37,18 +37,20 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(Object val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A01_t01.dart
index ce69a5e..850b656 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A01_t01.dart
@@ -39,9 +39,11 @@
 class B {}
 class T0 extends B {}
 
-T0 t0Instance = new T0();
+T0? t0Instance = new T0();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
@@ -49,27 +51,27 @@
 class ArgumentsBindingSuper1_t02 {
   Object m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object value, {Object val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(Object val) {}
 }
 
 class ArgumentsBinding1_t02 extends ArgumentsBindingSuper1_t02 {
-  ArgumentsBinding1_t02(T0 t1) : super(t1) {} //# 01: compile-time error
-  ArgumentsBinding1_t02.c1(T0 t1) : super.named(t1) {} //# 02: compile-time error
-  ArgumentsBinding1_t02.c2(Object t1, T0 t2) : super.named(t1, val2: t2) {} //# 03: compile-time error
-  ArgumentsBinding1_t02.c3(T0 t1) : super.positional(t1) {} //# 04: compile-time error
-  ArgumentsBinding1_t02.c4(Object t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
+  ArgumentsBinding1_t02(T0? t1) : super(t1) {} //# 01: compile-time error
+  ArgumentsBinding1_t02.c1(T0? t1) : super.named(t1) {} //# 02: compile-time error
+  ArgumentsBinding1_t02.c2(Object t1, T0? t2) : super.named(t1, val2: t2) {} //# 03: compile-time error
+  ArgumentsBinding1_t02.c3(T0? t1) : super.positional(t1) {} //# 04: compile-time error
+  ArgumentsBinding1_t02.c4(Object t1, T0? t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(Object t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
@@ -138,5 +140,5 @@
 }
 
 main() {
-  test<T0>(t0Instance);
+  test<T0?>(t0Instance);
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A02_t01.dart
index 3586bfb..bf9a004 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A02_t01.dart
@@ -42,6 +42,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
@@ -49,27 +51,27 @@
 class ArgumentsBindingSuper1_t02 {
   Object m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object value, {Object val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(Object val) {}
 }
 
 class ArgumentsBinding1_t02 extends ArgumentsBindingSuper1_t02 {
-  ArgumentsBinding1_t02(S t1) : super(t1) {} //# 01: compile-time error
-  ArgumentsBinding1_t02.c1(S t1) : super.named(t1) {} //# 02: compile-time error
-  ArgumentsBinding1_t02.c2(Object t1, S t2) : super.named(t1, val2: t2) {} //# 03: compile-time error
-  ArgumentsBinding1_t02.c3(S t1) : super.positional(t1) {} //# 04: compile-time error
-  ArgumentsBinding1_t02.c4(Object t1, S t2) : super.positional(t1, t2) {} //# 05: compile-time error
+  ArgumentsBinding1_t02(S? t1) : super(t1) {} //# 01: compile-time error
+  ArgumentsBinding1_t02.c1(S? t1) : super.named(t1) {} //# 02: compile-time error
+  ArgumentsBinding1_t02.c2(Object t1, S? t2) : super.named(t1, val2: t2) {} //# 03: compile-time error
+  ArgumentsBinding1_t02.c3(S? t1) : super.positional(t1) {} //# 04: compile-time error
+  ArgumentsBinding1_t02.c4(Object t1, S? t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(Object t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A03_t01.dart
index 6a929fe..f38eb05 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A03_t01.dart
@@ -51,14 +51,14 @@
 class ArgumentsBindingSuper1_t02 {
   Object m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object value, {Object val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(Object val) {}
 }
@@ -71,7 +71,7 @@
   ArgumentsBinding1_t02.c4(Object t1, FutureOr<S?> t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(Object t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A04_t01.dart
index 33c1e45..3d1a99f 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A04_t01.dart
@@ -43,20 +43,22 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   Object m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object value, {Object val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(Object val) {}
 }
@@ -69,7 +71,7 @@
   ArgumentsBinding1_t02.c4(Object t1, FutureOr<S?> t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(Object t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A05_t01.dart
index 4a65216..fae261b 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A05_t01.dart
@@ -37,25 +37,27 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   Object m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object value, {Object val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(Object val) {}
 }
@@ -68,7 +70,7 @@
   ArgumentsBinding1_t02.c4(Object t1, FutureOr<X> t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(Object t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A06_t01.dart
index 77d273e..c772dad 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_arguments_binding_super_fail_A06_t01.dart
@@ -37,25 +37,27 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   Object m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object value, {Object val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
+  void superTestPositioned(Object val, [Object val2 = t1Default]) {}
+  void superTestNamed(Object val, {Object val2 = t1Default}) {}
   Object get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(Object val) {}
 }
@@ -68,7 +70,7 @@
   ArgumentsBinding1_t02.c4(Object t1, FutureOr<X> t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(Object t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A01_t01.dart
index fe137cb..d37fed9 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A01_t01.dart
@@ -39,17 +39,19 @@
 class B {}
 class T0 extends B {}
 
-T0 t0Instance = new T0();
+T0? t0Instance = new T0();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class ClassMemberTestStatic {
-  static Object s;
+  static Object s = t1Default;
 
-  ClassMemberTestStatic(T0 val) {
+  ClassMemberTestStatic(T0? val) {
     s = val; //# 01: compile-time error
   }
 
@@ -57,7 +59,7 @@
     s = t0Instance; //# 04: compile-time error
   }
 
-  static set staticSetter(T0 val) {
+  static set staticSetter(T0? val) {
     s = val; //# 02: compile-time error
   }
 
@@ -65,9 +67,9 @@
 }
 
 class ClassMemberTestPublic {
-  Object m;
+  Object m = t1Default;
 
-  ClassMemberTestPublic(T0 val) {
+  ClassMemberTestPublic(T0? val) {
     m = val; //# 05: compile-time error
   }
 
@@ -75,11 +77,11 @@
 
   ClassMemberTestPublic.validConstructor() {}
 
-  test(T0 val) {
+  test(T0? val) {
     m = val; //# 08: compile-time error
   }
 
-  set setter(T0 val) {
+  set setter(T0? val) {
     m = val; //# 07: compile-time error
   }
 
@@ -87,9 +89,9 @@
 }
 
 class ClassMemberTestPrivate {
-  Object _m;
+  Object _m = t1Default;
 
-  ClassMemberTestPrivate(T0 val) {
+  ClassMemberTestPrivate(T0? val) {
     _m = val; //# 10: compile-time error
   }
 
@@ -97,11 +99,11 @@
 
   ClassMemberTestPrivate.validConstructor() {}
 
-  test(T0 val) {
+  test(T0? val) {
     _m = val; //# 12: compile-time error
   }
 
-  set setter(T0 val) {
+  set setter(T0? val) {
     _m = val; //# 11: compile-time error
   }
 }
@@ -134,5 +136,5 @@
 }
 
 main() {
-  test<T0>(t0Instance);
+  test<T0?>(t0Instance);
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A02_t01.dart
index 4234ccb..cd08194 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A02_t01.dart
@@ -42,14 +42,16 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class ClassMemberTestStatic {
-  static Object s;
+  static Object s = t1Default;
 
-  ClassMemberTestStatic(S val) {
+  ClassMemberTestStatic(S? val) {
     s = val; //# 01: compile-time error
   }
 
@@ -57,7 +59,7 @@
     s = t0Instance; //# 04: compile-time error
   }
 
-  static set staticSetter(S val) {
+  static set staticSetter(S? val) {
     s = val; //# 02: compile-time error
   }
 
@@ -65,9 +67,9 @@
 }
 
 class ClassMemberTestPublic {
-  Object m;
+  Object m = t1Default;
 
-  ClassMemberTestPublic(S val) {
+  ClassMemberTestPublic(S? val) {
     m = val; //# 05: compile-time error
   }
 
@@ -75,11 +77,11 @@
 
   ClassMemberTestPublic.validConstructor() {}
 
-  test(S val) {
+  test(S? val) {
     m = val; //# 08: compile-time error
   }
 
-  set setter(S val) {
+  set setter(S? val) {
     m = val; //# 07: compile-time error
   }
 
@@ -87,9 +89,9 @@
 }
 
 class ClassMemberTestPrivate {
-  Object _m;
+  Object _m = t1Default;
 
-  ClassMemberTestPrivate(S val) {
+  ClassMemberTestPrivate(S? val) {
     _m = val; //# 10: compile-time error
   }
 
@@ -97,11 +99,11 @@
 
   ClassMemberTestPrivate.validConstructor() {}
 
-  test(S val) {
+  test(S? val) {
     _m = val; //# 12: compile-time error
   }
 
-  set setter(S val) {
+  set setter(S? val) {
     _m = val; //# 11: compile-time error
   }
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A03_t01.dart
index 035b6e0..bf058f0 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A03_t01.dart
@@ -49,7 +49,7 @@
 
 
 class ClassMemberTestStatic {
-  static Object s;
+  static Object s = t1Default;
 
   ClassMemberTestStatic(FutureOr<S?> val) {
     s = val; //# 01: compile-time error
@@ -67,7 +67,7 @@
 }
 
 class ClassMemberTestPublic {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberTestPublic(FutureOr<S?> val) {
     m = val; //# 05: compile-time error
@@ -89,7 +89,7 @@
 }
 
 class ClassMemberTestPrivate {
-  Object _m;
+  Object _m = t1Default;
 
   ClassMemberTestPrivate(FutureOr<S?> val) {
     _m = val; //# 10: compile-time error
@@ -130,4 +130,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A04_t01.dart
index 1edb8a3..23d6061 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A04_t01.dart
@@ -43,11 +43,13 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberTestStatic {
-  static Object s;
+  static Object s = t1Default;
 
   ClassMemberTestStatic(FutureOr<S?> val) {
     s = val; //# 01: compile-time error
@@ -65,7 +67,7 @@
 }
 
 class ClassMemberTestPublic {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberTestPublic(FutureOr<S?> val) {
     m = val; //# 05: compile-time error
@@ -87,7 +89,7 @@
 }
 
 class ClassMemberTestPrivate {
-  Object _m;
+  Object _m = t1Default;
 
   ClassMemberTestPrivate(FutureOr<S?> val) {
     _m = val; //# 10: compile-time error
@@ -128,4 +130,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A05_t01.dart
index 5ba1015..47d878c 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A05_t01.dart
@@ -37,16 +37,18 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberTestStatic {
-  static Object s;
+  static Object s = t1Default;
 
   ClassMemberTestStatic(FutureOr<X> val) {
     s = val; //# 01: compile-time error
@@ -64,7 +66,7 @@
 }
 
 class ClassMemberTestPublic {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberTestPublic(FutureOr<X> val) {
     m = val; //# 05: compile-time error
@@ -86,7 +88,7 @@
 }
 
 class ClassMemberTestPrivate {
-  Object _m;
+  Object _m = t1Default;
 
   ClassMemberTestPrivate(FutureOr<X> val) {
     _m = val; //# 10: compile-time error
@@ -127,4 +129,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A06_t01.dart
index 5ca3b18..6a29d72 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_fail_A06_t01.dart
@@ -37,16 +37,18 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberTestStatic {
-  static Object s;
+  static Object s = t1Default;
 
   ClassMemberTestStatic(FutureOr<X> val) {
     s = val; //# 01: compile-time error
@@ -64,7 +66,7 @@
 }
 
 class ClassMemberTestPublic {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberTestPublic(FutureOr<X> val) {
     m = val; //# 05: compile-time error
@@ -86,7 +88,7 @@
 }
 
 class ClassMemberTestPrivate {
-  Object _m;
+  Object _m = t1Default;
 
   ClassMemberTestPrivate(FutureOr<X> val) {
     _m = val; //# 10: compile-time error
@@ -127,4 +129,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A01_t01.dart
index 9629f35..5eeda73 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A01_t01.dart
@@ -39,15 +39,17 @@
 class B {}
 class T0 extends B {}
 
-T0 t0Instance = new T0();
+T0? t0Instance = new T0();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class ClassMemberSuper1_t03 {
-  Object m;
+  Object m = t1Default;
   void set superSetter(Object val) {} //# 02: compile-time error
 }
 
@@ -72,5 +74,5 @@
 }
 
 main() {
-  test<T0>(t0Instance);
+  test<T0?>(t0Instance);
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A02_t01.dart
index 5c57d36..fa68c44 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A02_t01.dart
@@ -42,12 +42,14 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class ClassMemberSuper1_t03 {
-  Object m;
+  Object m = t1Default;
   void set superSetter(Object val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A03_t01.dart
index c14cbf1..807f2ed 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A03_t01.dart
@@ -49,7 +49,7 @@
 
 
 class ClassMemberSuper1_t03 {
-  Object m;
+  Object m = t1Default;
   void set superSetter(Object val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A04_t01.dart
index 464239b..39ec1fb 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A04_t01.dart
@@ -43,11 +43,13 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  Object m;
+  Object m = t1Default;
   void set superSetter(Object val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A05_t01.dart
index d5578fe..5cae13b 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A05_t01.dart
@@ -37,16 +37,18 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  Object m;
+  Object m = t1Default;
   void set superSetter(Object val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A06_t01.dart
index 091c0d8..fcf5f1e 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_mixin_fail_A06_t01.dart
@@ -37,16 +37,18 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  Object m;
+  Object m = t1Default;
   void set superSetter(Object val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A01_t01.dart
index 03d8208..8c0ee01 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A01_t01.dart
@@ -39,20 +39,22 @@
 class B {}
 class T0 extends B {}
 
-T0 t0Instance = new T0();
+T0? t0Instance = new T0();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
-  ClassMemberSuper1_t02(T0 value) {
+  ClassMemberSuper1_t02(T0? value) {
     m = value; //# 01: compile-time error
   }
-  ClassMemberSuper1_t02.named(T0 value) {
+  ClassMemberSuper1_t02.named(T0? value) {
     m = value; //# 02: compile-time error
   }
   void set superSetter(Object val) {}
@@ -84,5 +86,5 @@
 }
 
 main() {
-  test<T0>(t0Instance);
+  test<T0?>(t0Instance);
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A02_t01.dart
index 561e26a..a77ffea 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A02_t01.dart
@@ -42,17 +42,19 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
-  ClassMemberSuper1_t02(S value) {
+  ClassMemberSuper1_t02(S? value) {
     m = value; //# 01: compile-time error
   }
-  ClassMemberSuper1_t02.named(S value) {
+  ClassMemberSuper1_t02.named(S? value) {
     m = value; //# 02: compile-time error
   }
   void set superSetter(Object val) {}
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A03_t01.dart
index 185282d..6b6a409 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A03_t01.dart
@@ -49,7 +49,7 @@
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberSuper1_t02(FutureOr<S?> value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A04_t01.dart
index 622282f..1676bb7 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A04_t01.dart
@@ -43,11 +43,13 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberSuper1_t02(FutureOr<S?> value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A05_t01.dart
index e06997d..5f865d2 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A05_t01.dart
@@ -37,16 +37,18 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberSuper1_t02(FutureOr<X> value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A06_t01.dart
index 14b7134..2aa0bfc 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_class_member_super_fail_A06_t01.dart
@@ -37,16 +37,18 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object m = t1Default;
 
   ClassMemberSuper1_t02(FutureOr<X> value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A01_t01.dart
index cf3cc19..a1e25d3 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A01_t01.dart
@@ -39,9 +39,11 @@
 class B {}
 class T0 extends B {}
 
-T0 t0Instance = new T0();
+T0? t0Instance = new T0();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
@@ -78,5 +80,5 @@
 }
 
 main() {
-  test<T0>(t0Instance);
+  test<T0?>(t0Instance);
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A02_t01.dart
index 46c43d1..2fc7d9e 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A02_t01.dart
@@ -42,6 +42,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A04_t01.dart
index 81793ee..13889ff 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A04_t01.dart
@@ -43,6 +43,8 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A05_t01.dart
index b231343..092f165 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A05_t01.dart
@@ -37,11 +37,13 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A06_t01.dart
index 37df8bb..a2c633c 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_global_variable_fail_A06_t01.dart
@@ -37,11 +37,13 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A01_t01.dart
index c364c02..8d9fd39 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A01_t01.dart
@@ -39,29 +39,28 @@
 class B {}
 class T0 extends B {}
 
-T0 t0Instance = new T0();
+T0? t0Instance = new T0();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    Object t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    Object t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    Object t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    Object t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    Object t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    Object t1 = t0Instance; //# 05: compile-time error
   }
 }
 
@@ -69,12 +68,10 @@
 
 test<T extends B?>(T t0Instance) {
   
-  Object t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  Object t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    Object t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    Object t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
@@ -85,5 +82,5 @@
 }
 
 main() {
-  test<T0>(t0Instance);
+  test<T0?>(t0Instance);
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A02_t01.dart
index 2d42336..e90c657 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A02_t01.dart
@@ -42,26 +42,25 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    Object t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    Object t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    Object t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    Object t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    Object t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    Object t1 = t0Instance; //# 05: compile-time error
   }
 }
 
@@ -70,12 +69,10 @@
 test<T>(T t0Instance) {
   if (t0Instance is S?) {
     
-  Object t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  Object t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    Object t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    Object t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A03_t01.dart
index a196908..b26853a 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A03_t01.dart
@@ -50,30 +50,25 @@
 
 class LocalVariableTest {
   LocalVariableTest() {
-    Object t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    Object t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    Object t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    Object t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    Object t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    Object t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  Object t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  Object t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    Object t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    Object t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A04_t01.dart
index 780554e..6af3178 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A04_t01.dart
@@ -43,35 +43,32 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    Object t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    Object t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    Object t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    Object t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    Object t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    Object t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  Object t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  Object t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    Object t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    Object t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A05_t01.dart
index c1b3569..1fd8ae5 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A05_t01.dart
@@ -37,40 +37,37 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    Object t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    Object t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    Object t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    Object t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    Object t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    Object t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  Object t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  Object t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    Object t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    Object t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A06_t01.dart
index 3f5ceda..915bd92 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_local_variable_fail_A06_t01.dart
@@ -37,40 +37,37 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    Object t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    Object t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    Object t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    Object t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    Object t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    Object t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  Object t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  Object t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    Object t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    Object t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A01_t01.dart
index 424e8cf..15c0e7a 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A01_t01.dart
@@ -38,9 +38,11 @@
 class B {}
 class T0 extends B {}
 
-T0 t0Instance = new T0();
+T0? t0Instance = new T0();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
@@ -69,5 +71,5 @@
 }
 
 main() {
-  test<T0>(t0Instance);
+  test<T0?>(t0Instance);
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A02_t01.dart
index 7e49c52..c8f9c1c 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A02_t01.dart
@@ -41,6 +41,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A04_t01.dart
index 24a75e4..0e5bd88 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A04_t01.dart
@@ -42,6 +42,8 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A05_t01.dart
index c09f5cf..e22f8a6 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A05_t01.dart
@@ -36,11 +36,13 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A06_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A06_t01.dart
index fd4e097..d0c7e9c 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A06_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_fail_return_value_fail_A06_t01.dart
@@ -36,11 +36,13 @@
 
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A02_t01.dart
index 531411e..de8d8b6 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A02_t01.dart
@@ -39,6 +39,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A03_t01.dart
index 182dc2a..d8ce11a 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A03_t01.dart
@@ -39,6 +39,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A04_t01.dart
index 6d6c6f8..c5be1d8 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A04_t01.dart
@@ -40,6 +40,8 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A05_t01.dart
index 0b00a75..3044b58 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_global_variable_A05_t01.dart
@@ -40,6 +40,8 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A02_t01.dart
index 20aded5..9b3c3ae 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A02_t01.dart
@@ -39,6 +39,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A03_t01.dart
index a94d920..12e7787 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A03_t01.dart
@@ -39,6 +39,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A04_t01.dart
index be7e363..b2589e9 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A04_t01.dart
@@ -40,6 +40,8 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A05_t01.dart
index 912be8c..ae1b663 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_local_variable_A05_t01.dart
@@ -40,6 +40,8 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A02_t01.dart
index 5a555a1..908108e 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A02_t01.dart
@@ -39,6 +39,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A03_t01.dart
index 8f9e9e5..319752b 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A03_t01.dart
@@ -39,6 +39,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A04_t01.dart
index ae4f1a2..ed2351f 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A04_t01.dart
@@ -40,6 +40,8 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A05_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A05_t01.dart
index d759a3c..480144b 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A05_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_object_return_value_A05_t01.dart
@@ -40,6 +40,8 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A01_t01.dart
index a242d1c..108e127 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A01_t01.dart
@@ -30,33 +30,34 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
 
 
 
-namedArgumentsFunc1(Object? t1, {Object? t2}) {}
-positionalArgumentsFunc1(Object? t1, [Object? t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(Object? t1, {Object? t2 = t1Default}) {}
+positionalArgumentsFunc1(Object? t1, [Object? t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Object? t1) {}
 
-  ArgumentsBindingClass.named(Object? t1, {Object? t2}) {}
-  ArgumentsBindingClass.positional(Object? t1, [Object? t2]) {}
+  ArgumentsBindingClass.named(Object? t1, {Object? t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Object? t1, [Object? t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Object? t1, {Object? t2}) {
+  factory ArgumentsBindingClass.fNamed(Object? t1, {Object? t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Object? t1, [Object? t2]) {
+  factory ArgumentsBindingClass.fPositional(Object? t1, [Object? t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Object? t1, {Object? t2}) {}
-  static positionalArgumentsStaticMethod(Object? t1, [Object? t2]) {}
+  static namedArgumentsStaticMethod(Object? t1, {Object? t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Object? t1, [Object? t2 = t1Default]) {}
 
-  namedArgumentsMethod(Object? t1, {Object? t2}) {}
-  positionalArgumentsMethod(Object? t1, [Object? t2]) {}
+  namedArgumentsMethod(Object? t1, {Object? t2 = t1Default}) {}
+  positionalArgumentsMethod(Object? t1, [Object? t2 = t1Default]) {}
 
   set testSetter(Object? val) {}
 }
@@ -64,18 +65,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -106,18 +102,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Object?>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Object?>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Object?> instance2 = new ArgumentsBindingGen<Object?>(t0Instance);
   instance2 = new ArgumentsBindingGen<Object?>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object?>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Object?>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object?>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A01_t02.dart
index 0064a6c..06d84bd 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A01_t02.dart
@@ -30,20 +30,22 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   Object? m;
 
-  ArgumentsBindingSuper1_t02(Object? value) {}
-  ArgumentsBindingSuper1_t02.named(Object? value, {Object? val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object? value, [Object? val2]) {}
+  ArgumentsBindingSuper1_t02(Object? value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object? value, {Object? val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object? value, [Object? val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object? val) {}
-  void superTestPositioned(Object? val, [Object? val2]) {}
-  void superTestNamed(Object? val, {Object? val2}) {}
+  void superTestPositioned(Object? val, [Object? val2 = t1Default]) {}
+  void superTestNamed(Object? val, {Object? val2 = t1Default}) {}
   Object? get superGetter => m;
   void set superSetter(Object? val) {}
 }
@@ -71,31 +73,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -125,17 +119,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Object?> c2 =
     new ArgumentsBinding2_t02<Object?>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object?>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Object?>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object?>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object?>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Object?>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A01_t03.dart
index 3d22b45..d147863 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A01_t03.dart
@@ -30,15 +30,17 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Object? m;
+  Object? m = t1Default;
 
   void superTest(Object? val) {}
-  void superTestPositioned(Object? val, [Object? val2]) {}
-  void superTestNamed(Object? val, {Object? val2}) {}
+  void superTestPositioned(Object? val, [Object? val2 = t1Default]) {}
+  void superTestNamed(Object? val, {Object? val2 = t1Default}) {}
   Object? get superGetter => m;
   void set superSetter(Object? val) {}
 }
@@ -58,12 +60,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -71,13 +69,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -99,11 +92,7 @@
   ArgumentsBinding2_t03<Object?> c2 = new ArgumentsBinding2_t03<Object?>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A02_t01.dart
index 9e4c483..42a9529 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A02_t01.dart
@@ -24,39 +24,40 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
 
 
 
-namedArgumentsFunc1(dynamic t1, {dynamic t2}) {}
-positionalArgumentsFunc1(dynamic t1, [dynamic t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(dynamic t1, {dynamic t2 = t1Default}) {}
+positionalArgumentsFunc1(dynamic t1, [dynamic t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(dynamic t1) {}
 
-  ArgumentsBindingClass.named(dynamic t1, {dynamic t2}) {}
-  ArgumentsBindingClass.positional(dynamic t1, [dynamic t2]) {}
+  ArgumentsBindingClass.named(dynamic t1, {dynamic t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(dynamic t1, [dynamic t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(dynamic t1, {dynamic t2}) {
+  factory ArgumentsBindingClass.fNamed(dynamic t1, {dynamic t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(dynamic t1, [dynamic t2]) {
+  factory ArgumentsBindingClass.fPositional(dynamic t1, [dynamic t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(dynamic t1, {dynamic t2}) {}
-  static positionalArgumentsStaticMethod(dynamic t1, [dynamic t2]) {}
+  static namedArgumentsStaticMethod(dynamic t1, {dynamic t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(dynamic t1, [dynamic t2 = t1Default]) {}
 
-  namedArgumentsMethod(dynamic t1, {dynamic t2}) {}
-  positionalArgumentsMethod(dynamic t1, [dynamic t2]) {}
+  namedArgumentsMethod(dynamic t1, {dynamic t2 = t1Default}) {}
+  positionalArgumentsMethod(dynamic t1, [dynamic t2 = t1Default]) {}
 
   set testSetter(dynamic val) {}
 }
@@ -64,18 +65,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -106,18 +102,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<dynamic>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<dynamic>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<dynamic> instance2 = new ArgumentsBindingGen<dynamic>(t0Instance);
   instance2 = new ArgumentsBindingGen<dynamic>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<dynamic>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<dynamic>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<dynamic>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A02_t02.dart
index c8fa0d1..7933e8e 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A02_t02.dart
@@ -24,26 +24,28 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   dynamic m;
 
-  ArgumentsBindingSuper1_t02(dynamic value) {}
-  ArgumentsBindingSuper1_t02.named(dynamic value, {dynamic val2}) {}
-  ArgumentsBindingSuper1_t02.positional(dynamic value, [dynamic val2]) {}
+  ArgumentsBindingSuper1_t02(dynamic value): m = value {}
+  ArgumentsBindingSuper1_t02.named(dynamic value, {dynamic val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(dynamic value, [dynamic val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(dynamic val) {}
-  void superTestPositioned(dynamic val, [dynamic val2]) {}
-  void superTestNamed(dynamic val, {dynamic val2}) {}
+  void superTestPositioned(dynamic val, [dynamic val2 = t1Default]) {}
+  void superTestNamed(dynamic val, {dynamic val2 = t1Default}) {}
   dynamic get superGetter => m;
   void set superSetter(dynamic val) {}
 }
@@ -71,31 +73,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -125,17 +119,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<dynamic> c2 =
     new ArgumentsBinding2_t02<dynamic>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<dynamic>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<dynamic>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<dynamic>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<dynamic>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<dynamic>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A02_t03.dart
index 5cb23c2..dec6dd5 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A02_t03.dart
@@ -24,21 +24,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  dynamic m;
+  dynamic m = t1Default;
 
   void superTest(dynamic val) {}
-  void superTestPositioned(dynamic val, [dynamic val2]) {}
-  void superTestNamed(dynamic val, {dynamic val2}) {}
+  void superTestPositioned(dynamic val, [dynamic val2 = t1Default]) {}
+  void superTestNamed(dynamic val, {dynamic val2 = t1Default}) {}
   dynamic get superGetter => m;
   void set superSetter(dynamic val) {}
 }
@@ -58,12 +60,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -71,13 +69,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -99,11 +92,7 @@
   ArgumentsBinding2_t03<dynamic> c2 = new ArgumentsBinding2_t03<dynamic>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A03_t01.dart
index bc0612d..2c3a1c3 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A03_t01.dart
@@ -28,33 +28,34 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
 
 
 
-namedArgumentsFunc1(Object? t1, {Object? t2}) {}
-positionalArgumentsFunc1(Object? t1, [Object? t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(Object? t1, {Object? t2 = t1Default}) {}
+positionalArgumentsFunc1(Object? t1, [Object? t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(Object? t1) {}
 
-  ArgumentsBindingClass.named(Object? t1, {Object? t2}) {}
-  ArgumentsBindingClass.positional(Object? t1, [Object? t2]) {}
+  ArgumentsBindingClass.named(Object? t1, {Object? t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(Object? t1, [Object? t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(Object? t1, {Object? t2}) {
+  factory ArgumentsBindingClass.fNamed(Object? t1, {Object? t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Object? t1, [Object? t2]) {
+  factory ArgumentsBindingClass.fPositional(Object? t1, [Object? t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Object? t1, {Object? t2}) {}
-  static positionalArgumentsStaticMethod(Object? t1, [Object? t2]) {}
+  static namedArgumentsStaticMethod(Object? t1, {Object? t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(Object? t1, [Object? t2 = t1Default]) {}
 
-  namedArgumentsMethod(Object? t1, {Object? t2}) {}
-  positionalArgumentsMethod(Object? t1, [Object? t2]) {}
+  namedArgumentsMethod(Object? t1, {Object? t2 = t1Default}) {}
+  positionalArgumentsMethod(Object? t1, [Object? t2 = t1Default]) {}
 
   set testSetter(Object? val) {}
 }
@@ -62,18 +63,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -104,18 +100,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<Object?>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Object?>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<Object?> instance2 = new ArgumentsBindingGen<Object?>(t0Instance);
   instance2 = new ArgumentsBindingGen<Object?>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object?>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<Object?>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<Object?>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A03_t02.dart
index 4a4fdd6..9cf1c45 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A03_t02.dart
@@ -28,20 +28,22 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   Object? m;
 
-  ArgumentsBindingSuper1_t02(Object? value) {}
-  ArgumentsBindingSuper1_t02.named(Object? value, {Object? val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object? value, [Object? val2]) {}
+  ArgumentsBindingSuper1_t02(Object? value): m = value {}
+  ArgumentsBindingSuper1_t02.named(Object? value, {Object? val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(Object? value, [Object? val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(Object? val) {}
-  void superTestPositioned(Object? val, [Object? val2]) {}
-  void superTestNamed(Object? val, {Object? val2}) {}
+  void superTestPositioned(Object? val, [Object? val2 = t1Default]) {}
+  void superTestNamed(Object? val, {Object? val2 = t1Default}) {}
   Object? get superGetter => m;
   void set superSetter(Object? val) {}
 }
@@ -69,31 +71,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -123,17 +117,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<Object?> c2 =
     new ArgumentsBinding2_t02<Object?>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object?>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<Object?>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object?>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<Object?>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<Object?>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A03_t03.dart
index cc4f641..aeee7e6 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A03_t03.dart
@@ -28,15 +28,17 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Object? m;
+  Object? m = t1Default;
 
   void superTest(Object? val) {}
-  void superTestPositioned(Object? val, [Object? val2]) {}
-  void superTestNamed(Object? val, {Object? val2}) {}
+  void superTestPositioned(Object? val, [Object? val2 = t1Default]) {}
+  void superTestNamed(Object? val, {Object? val2 = t1Default}) {}
   Object? get superGetter => m;
   void set superSetter(Object? val) {}
 }
@@ -56,12 +58,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -69,13 +67,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -97,11 +90,7 @@
   ArgumentsBinding2_t03<Object?> c2 = new ArgumentsBinding2_t03<Object?>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A04_t01.dart
index e907c64..e9eb931 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A04_t01.dart
@@ -24,37 +24,38 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
 
 
 
-namedArgumentsFunc1(dynamic t1, {dynamic t2}) {}
-positionalArgumentsFunc1(dynamic t1, [dynamic t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(dynamic t1, {dynamic t2 = t1Default}) {}
+positionalArgumentsFunc1(dynamic t1, [dynamic t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(dynamic t1) {}
 
-  ArgumentsBindingClass.named(dynamic t1, {dynamic t2}) {}
-  ArgumentsBindingClass.positional(dynamic t1, [dynamic t2]) {}
+  ArgumentsBindingClass.named(dynamic t1, {dynamic t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(dynamic t1, [dynamic t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(dynamic t1, {dynamic t2}) {
+  factory ArgumentsBindingClass.fNamed(dynamic t1, {dynamic t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(dynamic t1, [dynamic t2]) {
+  factory ArgumentsBindingClass.fPositional(dynamic t1, [dynamic t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(dynamic t1, {dynamic t2}) {}
-  static positionalArgumentsStaticMethod(dynamic t1, [dynamic t2]) {}
+  static namedArgumentsStaticMethod(dynamic t1, {dynamic t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(dynamic t1, [dynamic t2 = t1Default]) {}
 
-  namedArgumentsMethod(dynamic t1, {dynamic t2}) {}
-  positionalArgumentsMethod(dynamic t1, [dynamic t2]) {}
+  namedArgumentsMethod(dynamic t1, {dynamic t2 = t1Default}) {}
+  positionalArgumentsMethod(dynamic t1, [dynamic t2 = t1Default]) {}
 
   set testSetter(dynamic val) {}
 }
@@ -62,18 +63,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -104,18 +100,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<dynamic>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<dynamic>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<dynamic> instance2 = new ArgumentsBindingGen<dynamic>(t0Instance);
   instance2 = new ArgumentsBindingGen<dynamic>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<dynamic>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<dynamic>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<dynamic>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A04_t02.dart
index 79c0652..18c8944 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A04_t02.dart
@@ -24,24 +24,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   dynamic m;
 
-  ArgumentsBindingSuper1_t02(dynamic value) {}
-  ArgumentsBindingSuper1_t02.named(dynamic value, {dynamic val2}) {}
-  ArgumentsBindingSuper1_t02.positional(dynamic value, [dynamic val2]) {}
+  ArgumentsBindingSuper1_t02(dynamic value): m = value {}
+  ArgumentsBindingSuper1_t02.named(dynamic value, {dynamic val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(dynamic value, [dynamic val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(dynamic val) {}
-  void superTestPositioned(dynamic val, [dynamic val2]) {}
-  void superTestNamed(dynamic val, {dynamic val2}) {}
+  void superTestPositioned(dynamic val, [dynamic val2 = t1Default]) {}
+  void superTestNamed(dynamic val, {dynamic val2 = t1Default}) {}
   dynamic get superGetter => m;
   void set superSetter(dynamic val) {}
 }
@@ -69,31 +71,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -123,17 +117,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<dynamic> c2 =
     new ArgumentsBinding2_t02<dynamic>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<dynamic>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<dynamic>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<dynamic>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<dynamic>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<dynamic>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A04_t03.dart
index ec46a8e..5d4ceb4 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_arguments_binding_A04_t03.dart
@@ -24,19 +24,21 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  dynamic m;
+  dynamic m = t1Default;
 
   void superTest(dynamic val) {}
-  void superTestPositioned(dynamic val, [dynamic val2]) {}
-  void superTestNamed(dynamic val, {dynamic val2}) {}
+  void superTestPositioned(dynamic val, [dynamic val2 = t1Default]) {}
+  void superTestNamed(dynamic val, {dynamic val2 = t1Default}) {}
   dynamic get superGetter => m;
   void set superSetter(dynamic val) {}
 }
@@ -56,12 +58,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -69,13 +67,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -97,11 +90,7 @@
   ArgumentsBinding2_t03<dynamic> c2 = new ArgumentsBinding2_t03<dynamic>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A01_t01.dart
index 588808a..7bca890 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A01_t01.dart
@@ -30,6 +30,8 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A01_t02.dart
index aafc528..107433f 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A01_t02.dart
@@ -30,11 +30,13 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Object? m;
+  Object? m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A01_t03.dart
index 77215ce..b60cef7 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A01_t03.dart
@@ -30,11 +30,13 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Object? m;
+  Object? m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A02_t01.dart
index d553c65..b582845 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A02_t01.dart
@@ -24,12 +24,14 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A02_t02.dart
index 7f2f895..8afda52 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A02_t02.dart
@@ -24,17 +24,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
 class ClassMemberSuper1_t02 {
-  dynamic m;
+  dynamic m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A02_t03.dart
index 82ac71f..aff589d 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A02_t03.dart
@@ -24,17 +24,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
 class ClassMemberMixin1_t03 {
-  dynamic m;
+  dynamic m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A03_t01.dart
index 9e78f92..022f05f 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A03_t01.dart
@@ -28,6 +28,8 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A03_t02.dart
index f70da26..ae2a13a 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A03_t02.dart
@@ -28,11 +28,13 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
 class ClassMemberSuper1_t02 {
-  Object? m;
+  Object? m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A03_t03.dart
index 1744a80..eb29034 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A03_t03.dart
@@ -28,11 +28,13 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
 class ClassMemberMixin1_t03 {
-  Object? m;
+  Object? m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A04_t01.dart
index 71aee65..bb0c5c1 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A04_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A04_t02.dart b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A04_t02.dart
index 5d76618..9866faa 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A04_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A04_t02.dart
@@ -24,15 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
 class ClassMemberSuper1_t02 {
-  dynamic m;
+  dynamic m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A04_t03.dart b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A04_t03.dart
index e645746..6499196 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A04_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_class_member_A04_t03.dart
@@ -24,15 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
 class ClassMemberMixin1_t03 {
-  dynamic m;
+  dynamic m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A01_t01.dart
index 0e8bef1..799f16e 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A01_t01.dart
@@ -30,6 +30,8 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A02_t01.dart
index e07141d..75b542c 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A02_t01.dart
@@ -24,12 +24,14 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A03_t01.dart
index fa73647..015b200 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A03_t01.dart
@@ -28,6 +28,8 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A04_t01.dart
index 096766d..85deba7 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_global_variable_A04_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A01_t01.dart
index e47ffd2..0a09b19 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A01_t01.dart
@@ -30,6 +30,8 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A02_t01.dart
index 3ff0207..55e964b 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A02_t01.dart
@@ -24,12 +24,14 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A03_t01.dart
index 1cb37b4..daa3771 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A03_t01.dart
@@ -28,6 +28,8 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A04_t01.dart
index b48d47a..659152d 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_local_variable_A04_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A01_t01.dart
index 1caf460..8585dca 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A01_t01.dart
@@ -30,6 +30,8 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A02_t01.dart
index 5e3e621..78aa26b 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A02_t01.dart
@@ -24,12 +24,14 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A03_t01.dart
index 09cc57e..07da002 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A03_t01.dart
@@ -28,6 +28,8 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A04_t01.dart b/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A04_t01.dart
index 24213de..d1fb1ae 100644
--- a/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A04_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/right_top_return_value_A04_t01.dart
@@ -24,10 +24,12 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A01_t01.dart
index 0472f8c..97af5b7 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A01_t01.dart
@@ -25,8 +25,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -39,33 +41,34 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -73,18 +76,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -115,18 +113,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T1>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<T1> instance2 = new ArgumentsBindingGen<T1>(t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A01_t02.dart
index 86253cf..e70598e 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A01_t02.dart
@@ -25,8 +25,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -39,20 +41,22 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -80,31 +84,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -134,17 +130,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<T1> c2 =
     new ArgumentsBinding2_t02<T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A01_t03.dart
index 108d107..a880b63 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A01_t03.dart
@@ -25,8 +25,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -39,15 +41,17 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -67,12 +71,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -80,13 +80,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -108,11 +103,7 @@
   ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A02_t01.dart
index e2e489a..af6317d 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A02_t01.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -40,33 +42,34 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -74,18 +77,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -116,18 +114,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T1>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<T1> instance2 = new ArgumentsBindingGen<T1>(t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A02_t02.dart
index 794899d..b066097 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A02_t02.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -40,20 +42,22 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -81,31 +85,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -135,17 +131,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<T1> c2 =
     new ArgumentsBinding2_t02<T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A02_t03.dart
index 618411e..ea4a49e 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A02_t03.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -40,15 +42,17 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -68,12 +72,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -81,13 +81,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -109,11 +104,7 @@
   ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A03_t01.dart
index ebd4c06..bcf05d4 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A03_t01.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -42,33 +44,34 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(T1 t1) {}
 
-  ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-  ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+  ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-  static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+  static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(T1 t1, {T1 t2}) {}
-  positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+  namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
   set testSetter(T1 val) {}
 }
@@ -76,18 +79,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -118,18 +116,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<T1>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<T1> instance2 = new ArgumentsBindingGen<T1>(t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<T1>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A03_t02.dart
index 9a941cc..d34424f 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A03_t02.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -42,20 +44,22 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -83,31 +87,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -137,17 +133,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<T1> c2 =
     new ArgumentsBinding2_t02<T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<T1>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<T1>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A03_t03.dart
index c994560..fb2812b 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_arguments_binding_A03_t03.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -42,15 +44,17 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => m;
   void set superSetter(T1 val) {}
 }
@@ -70,12 +74,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -83,13 +83,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -111,11 +106,7 @@
   ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A01_t01.dart
index 2f915c5..7892844 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A01_t01.dart
@@ -25,8 +25,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -39,6 +41,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A01_t02.dart
index 5b1abda..764b41c 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A01_t02.dart
@@ -25,8 +25,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -39,11 +41,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A01_t03.dart
index 1340cf8..d5cc9d3 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A01_t03.dart
@@ -25,8 +25,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -39,11 +41,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A02_t01.dart
index 0fa20f7..d079760 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A02_t01.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -40,6 +42,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A02_t02.dart
index 7bf6cff..ab7b023 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A02_t02.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -40,11 +42,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A02_t03.dart
index 95b4341..0b37b12 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A02_t03.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -40,11 +42,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A03_t01.dart
index 00b526f..6e3b9a6 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A03_t01.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -42,6 +44,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A03_t02.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A03_t02.dart
index bf4b446..b8a7d31 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A03_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A03_t02.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -42,11 +44,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A03_t03.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A03_t03.dart
index 31ce3b0..98d9715 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A03_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_class_member_A03_t03.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -42,11 +44,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  T1 m;
+  T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_arguments_binding_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_arguments_binding_fail_A01_t01.dart
index 6c5f9b7..0d48f4a 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_arguments_binding_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_arguments_binding_fail_A01_t01.dart
@@ -27,8 +27,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -42,30 +44,32 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
 
 
 
-namedArgumentsFunc1(T1 t1, {T1 t2}) {}
-positionalArgumentsFunc1(T1 t1, [T1 t2]) {}
+
+namedArgumentsFunc1(T1 t1, {T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(T1 t1, [T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(T1 t1) {}
 
-    ArgumentsBindingClass.named(T1 t1, {T1 t2}) {}
-    ArgumentsBindingClass.positional(T1 t1, [T1 t2]) {}
+    ArgumentsBindingClass.named(T1 t1, {T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(T1 t1, [T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(T1 t1, {T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(T1 t1, [T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(T1 t1, {T1 t2}) {}
-    static positionalArgumentsStaticMethod(T1 t1, [T1 t2]) {}
+    static namedArgumentsStaticMethod(T1 t1, {T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(T1 t1, [T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(T1 t1, {T1 t2}) {}
-    positionalArgumentsMethod(T1 t1, [T1 t2]) {}
+    namedArgumentsMethod(T1 t1, {T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(T1 t1, [T1 t2 = t1Default]) {}
 
     set testSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_arguments_binding_mixin_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_arguments_binding_mixin_fail_A01_t01.dart
index 2dd8750..b43341d 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_arguments_binding_mixin_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_arguments_binding_mixin_fail_A01_t01.dart
@@ -28,8 +28,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -43,13 +45,15 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_arguments_binding_super_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_arguments_binding_super_fail_A01_t01.dart
index 3cda1ce..0d72395 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_arguments_binding_super_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_arguments_binding_super_fail_A01_t01.dart
@@ -28,8 +28,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -43,20 +45,22 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   T1 m;
 
-  ArgumentsBindingSuper1_t02(T1 value) {}
-  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2]) {}
+  ArgumentsBindingSuper1_t02(T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(T1 value, {T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(T1 value, [T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(T1 val) {}
-  void superTestPositioned(T1 val, [T1 val2]) {}
-  void superTestNamed(T1 val, {T1 val2}) {}
+  void superTestPositioned(T1 val, [T1 val2 = t1Default]) {}
+  void superTestNamed(T1 val, {T1 val2 = t1Default}) {}
   T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(T1 val) {}
 }
@@ -69,7 +73,7 @@
   ArgumentsBinding1_t02.c4(T1 t1, T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_class_member_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_class_member_fail_A01_t01.dart
index 41b64e0..472c10a 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_class_member_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_class_member_fail_A01_t01.dart
@@ -28,8 +28,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -43,11 +45,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberTestStatic {
-  static T1 s;
+  static T1 s = t1Default;
 
   ClassMemberTestStatic(T0 val) {
     s = val; //# 01: compile-time error
@@ -65,7 +69,7 @@
 }
 
 class ClassMemberTestPublic {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberTestPublic(T0 val) {
     m = val; //# 05: compile-time error
@@ -87,7 +91,7 @@
 }
 
 class ClassMemberTestPrivate {
-  T1 _m;
+  T1 _m = t1Default;
 
   ClassMemberTestPrivate(T0 val) {
     _m = val; //# 10: compile-time error
@@ -128,4 +132,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_class_member_mixin_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_class_member_mixin_fail_A01_t01.dart
index bf877ef..0464cdf 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_class_member_mixin_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_class_member_mixin_fail_A01_t01.dart
@@ -28,8 +28,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -43,11 +45,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t03 {
-  T1 m;
+  T1 m = t1Default;
   void set superSetter(T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_class_member_super_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_class_member_super_fail_A01_t01.dart
index 99eb83c..4d160c6 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_class_member_super_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_class_member_super_fail_A01_t01.dart
@@ -28,8 +28,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -43,11 +45,13 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  T1 m;
+  T1 m = t1Default;
 
   ClassMemberSuper1_t02(T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_global_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_global_variable_fail_A01_t01.dart
index 5c440fb..c7787f3 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_global_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_global_variable_fail_A01_t01.dart
@@ -28,8 +28,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -43,6 +45,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_local_variable_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_local_variable_fail_A01_t01.dart
index 38f5318..c945260 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_local_variable_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_local_variable_fail_A01_t01.dart
@@ -28,8 +28,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -43,35 +45,32 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
 class LocalVariableTest {
   LocalVariableTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_return_value_fail_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_return_value_fail_A01_t01.dart
index 878c9ec..c193c65 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_fail_return_value_fail_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_fail_return_value_fail_A01_t01.dart
@@ -27,8 +27,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -42,6 +44,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_global_variable_A01_t01.dart
index 61f46ef..ec6c143 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_global_variable_A01_t01.dart
@@ -25,8 +25,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -39,6 +41,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_global_variable_A02_t01.dart
index 0eeb6ee..8bfdbb6 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_global_variable_A02_t01.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -40,6 +42,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_global_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_global_variable_A03_t01.dart
index e41beae..a96e75a 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_global_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_global_variable_A03_t01.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -42,6 +44,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_local_variable_A01_t01.dart
index f7c7f4d..c55252e 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_local_variable_A01_t01.dart
@@ -25,8 +25,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -39,6 +41,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_local_variable_A02_t01.dart
index 70baa82..09948ec 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_local_variable_A02_t01.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -40,6 +42,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_local_variable_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_local_variable_A03_t01.dart
index 5769556..46d1d1e 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_local_variable_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_local_variable_A03_t01.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -42,6 +44,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_return_value_A01_t01.dart
index 9f3409b..5dc8f0e 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_return_value_A01_t01.dart
@@ -25,8 +25,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -39,6 +41,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_return_value_A02_t01.dart
index 0d2f36a..6b9947a 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_return_value_A02_t01.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -40,6 +42,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/super_interface_return_value_A03_t01.dart b/LanguageFeatures/Subtyping/static/generated/super_interface_return_value_A03_t01.dart
index 6d7e300..22af50c 100644
--- a/LanguageFeatures/Subtyping/static/generated/super_interface_return_value_A03_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/super_interface_return_value_A03_t01.dart
@@ -26,8 +26,10 @@
  */
 
 
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -42,6 +44,8 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A01_t01.dart
index f77c646..8941cc6 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A01_t01.dart
@@ -25,40 +25,43 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
 
 
 
-namedArgumentsFunc1(X0 t1, {X0 t2}) {}
-positionalArgumentsFunc1(X0 t1, [X0 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(X0 t1, {X0 t2 = t1Default}) {}
+positionalArgumentsFunc1(X0 t1, [X0 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(X0 t1) {}
 
-  ArgumentsBindingClass.named(X0 t1, {X0 t2}) {}
-  ArgumentsBindingClass.positional(X0 t1, [X0 t2]) {}
+  ArgumentsBindingClass.named(X0 t1, {X0 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(X0 t1, [X0 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(X0 t1, {X0 t2}) {
+  factory ArgumentsBindingClass.fNamed(X0 t1, {X0 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(X0 t1, [X0 t2]) {
+  factory ArgumentsBindingClass.fPositional(X0 t1, [X0 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(X0 t1, {X0 t2}) {}
-  static positionalArgumentsStaticMethod(X0 t1, [X0 t2]) {}
+  static namedArgumentsStaticMethod(X0 t1, {X0 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(X0 t1, [X0 t2 = t1Default]) {}
 
-  namedArgumentsMethod(X0 t1, {X0 t2}) {}
-  positionalArgumentsMethod(X0 t1, [X0 t2]) {}
+  namedArgumentsMethod(X0 t1, {X0 t2 = t1Default}) {}
+  positionalArgumentsMethod(X0 t1, [X0 t2 = t1Default]) {}
 
   set testSetter(X0 val) {}
 }
@@ -66,18 +69,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -113,18 +111,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<X0>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<X0>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<X0> instance2 = new ArgumentsBindingGen<X0>(t0Instance);
   instance2 = new ArgumentsBindingGen<X0>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<X0>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<X0>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<X0>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A01_t02.dart
index ea2d68a..fcd8b97 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A01_t02.dart
@@ -25,27 +25,31 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   X0 m;
 
-  ArgumentsBindingSuper1_t02(X0 value) {}
-  ArgumentsBindingSuper1_t02.named(X0 value, {X0 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(X0 value, [X0 val2]) {}
+  ArgumentsBindingSuper1_t02(X0 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(X0 value, {X0 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(X0 value, [X0 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(X0 val) {}
-  void superTestPositioned(X0 val, [X0 val2]) {}
-  void superTestNamed(X0 val, {X0 val2}) {}
+  void superTestPositioned(X0 val, [X0 val2 = t1Default]) {}
+  void superTestNamed(X0 val, {X0 val2 = t1Default}) {}
   X0 get superGetter => m;
   void set superSetter(X0 val) {}
 }
@@ -73,31 +77,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -132,17 +128,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<X0> c2 =
     new ArgumentsBinding2_t02<X0>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<X0>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<X0>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<X0>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<X0>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<X0>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A01_t03.dart
index ccc1859..3d6bf3c 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A01_t03.dart
@@ -25,22 +25,26 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  X0 m;
+  X0 m = t1Default;
 
   void superTest(X0 val) {}
-  void superTestPositioned(X0 val, [X0 val2]) {}
-  void superTestNamed(X0 val, {X0 val2}) {}
+  void superTestPositioned(X0 val, [X0 val2 = t1Default]) {}
+  void superTestNamed(X0 val, {X0 val2 = t1Default}) {}
   X0 get superGetter => m;
   void set superSetter(X0 val) {}
 }
@@ -60,12 +64,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -73,13 +73,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -106,12 +101,8 @@
   ArgumentsBinding2_t03<X0> c2 = new ArgumentsBinding2_t03<X0>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 
   }
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A02_t01.dart
index e661729..f880b9e 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A02_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
@@ -34,33 +36,34 @@
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
 
 
 
-namedArgumentsFunc1(X0 t1, {X0 t2}) {}
-positionalArgumentsFunc1(X0 t1, [X0 t2]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc1(X0 t1, {X0 t2 = t1Default}) {}
+positionalArgumentsFunc1(X0 t1, [X0 t2 = t1Default]) {}
+
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(X0 t1) {}
 
-  ArgumentsBindingClass.named(X0 t1, {X0 t2}) {}
-  ArgumentsBindingClass.positional(X0 t1, [X0 t2]) {}
+  ArgumentsBindingClass.named(X0 t1, {X0 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(X0 t1, [X0 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(X0 t1, {X0 t2}) {
+  factory ArgumentsBindingClass.fNamed(X0 t1, {X0 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(X0 t1, [X0 t2]) {
+  factory ArgumentsBindingClass.fPositional(X0 t1, [X0 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(X0 t1, {X0 t2}) {}
-  static positionalArgumentsStaticMethod(X0 t1, [X0 t2]) {}
+  static namedArgumentsStaticMethod(X0 t1, {X0 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(X0 t1, [X0 t2 = t1Default]) {}
 
-  namedArgumentsMethod(X0 t1, {X0 t2}) {}
-  positionalArgumentsMethod(X0 t1, [X0 t2]) {}
+  namedArgumentsMethod(X0 t1, {X0 t2 = t1Default}) {}
+  positionalArgumentsMethod(X0 t1, [X0 t2 = t1Default]) {}
 
   set testSetter(X0 val) {}
 }
@@ -68,18 +71,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -114,18 +112,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<X0>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<X0>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<X0> instance2 = new ArgumentsBindingGen<X0>(t0Instance);
   instance2 = new ArgumentsBindingGen<X0>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<X0>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<X0>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<X0>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A02_t02.dart
index 4b1d9a2..4a12507 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A02_t02.dart
@@ -25,7 +25,9 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
@@ -34,20 +36,22 @@
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
 class ArgumentsBindingSuper1_t02 {
   X0 m;
 
-  ArgumentsBindingSuper1_t02(X0 value) {}
-  ArgumentsBindingSuper1_t02.named(X0 value, {X0 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(X0 value, [X0 val2]) {}
+  ArgumentsBindingSuper1_t02(X0 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(X0 value, {X0 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(X0 value, [X0 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(X0 val) {}
-  void superTestPositioned(X0 val, [X0 val2]) {}
-  void superTestNamed(X0 val, {X0 val2}) {}
+  void superTestPositioned(X0 val, [X0 val2 = t1Default]) {}
+  void superTestNamed(X0 val, {X0 val2 = t1Default}) {}
   X0 get superGetter => m;
   void set superSetter(X0 val) {}
 }
@@ -75,31 +79,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -133,17 +129,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<X0> c2 =
     new ArgumentsBinding2_t02<X0>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<X0>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<X0>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<X0>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<X0>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<X0>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A02_t03.dart
index 2deaa88..938f308 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_arguments_binding_A02_t03.dart
@@ -25,7 +25,9 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
@@ -34,15 +36,17 @@
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  X0 m;
+  X0 m = t1Default;
 
   void superTest(X0 val) {}
-  void superTestPositioned(X0 val, [X0 val2]) {}
-  void superTestNamed(X0 val, {X0 val2}) {}
+  void superTestPositioned(X0 val, [X0 val2 = t1Default]) {}
+  void superTestNamed(X0 val, {X0 val2 = t1Default}) {}
   X0 get superGetter => m;
   void set superSetter(X0 val) {}
 }
@@ -62,12 +66,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -75,13 +75,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -107,12 +102,8 @@
   ArgumentsBinding2_t03<X0> c2 = new ArgumentsBinding2_t03<X0>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 
   }
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A01_t01.dart
index cccf268..fd0df27 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A01_t01.dart
@@ -25,13 +25,17 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A01_t02.dart
index 78189fc..a572662 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A01_t02.dart
@@ -25,18 +25,22 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  X0 m;
+  X0 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A01_t03.dart
index ae3cc5d..c76549d 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A01_t03.dart
@@ -25,18 +25,22 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  X0 m;
+  X0 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A02_t01.dart
index 423ebd8..d891e9c 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A02_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
@@ -34,6 +36,8 @@
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A02_t02.dart
index 7b7ddc5..be31f6e 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A02_t02.dart
@@ -25,7 +25,9 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
@@ -34,11 +36,13 @@
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
 class ClassMemberSuper1_t02 {
-  X0 m;
+  X0 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A02_t03.dart
index d99c777..2defe4b 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_class_member_A02_t03.dart
@@ -25,7 +25,9 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
@@ -34,11 +36,13 @@
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
 class ClassMemberMixin1_t03 {
-  X0 m;
+  X0 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_global_variable_A01_t01.dart
index 4e01a0f..042510a 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_global_variable_A01_t01.dart
@@ -25,13 +25,17 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_global_variable_A02_t01.dart
index 2d113b8..0d9fe6b 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_global_variable_A02_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
@@ -34,6 +36,8 @@
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_local_variable_A01_t01.dart
index 9177593..e8d8677 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_local_variable_A01_t01.dart
@@ -25,13 +25,17 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_local_variable_A02_t01.dart
index 2b0a9ed..dc15998 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_local_variable_A02_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
@@ -34,6 +36,8 @@
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_return_value_A01_t01.dart
index 23b45bb..2099fed 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_return_value_A01_t01.dart
@@ -25,13 +25,17 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_return_value_A02_t01.dart
index 966b036..75bf358 100644
--- a/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/type_variable_reflexivity_1_return_value_A02_t01.dart
@@ -25,7 +25,9 @@
  */
 
 
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
@@ -34,6 +36,8 @@
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_fail_x01.dart b/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_fail_x01.dart
index 0c44d3d..4962278 100644
--- a/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_fail_x01.dart
+++ b/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_fail_x01.dart
@@ -11,27 +11,27 @@
  * @author sgrekhov@unipro.ru
  */
 
-namedArgumentsFunc1(@T1 t1, {@T1 t2}) {}
-positionalArgumentsFunc1(@T1 t1, [@T1 t2]) {}
+namedArgumentsFunc1(@T1 t1, {@T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(@T1 t1, [@T1 t2 = t1Default]) {}
 
 class ArgumentsBindingClass {
     ArgumentsBindingClass(@T1 t1) {}
 
-    ArgumentsBindingClass.named(@T1 t1, {@T1 t2}) {}
-    ArgumentsBindingClass.positional(@T1 t1, [@T1 t2]) {}
+    ArgumentsBindingClass.named(@T1 t1, {@T1 t2 = t1Default}) {}
+    ArgumentsBindingClass.positional(@T1 t1, [@T1 t2 = t1Default]) {}
 
-    factory ArgumentsBindingClass.fNamed(@T1 t1, {@T1 t2}) {
+    factory ArgumentsBindingClass.fNamed(@T1 t1, {@T1 t2 = t1Default}) {
         return new ArgumentsBindingClass.named(t1, t2: t2);
     }
-    factory ArgumentsBindingClass.fPositional(@T1 t1, [@T1 t2]) {
+    factory ArgumentsBindingClass.fPositional(@T1 t1, [@T1 t2 = t1Default]) {
         return new ArgumentsBindingClass.positional(t1, t2);
     }
 
-    static namedArgumentsStaticMethod(@T1 t1, {@T1 t2}) {}
-    static positionalArgumentsStaticMethod(@T1 t1, [@T1 t2]) {}
+    static namedArgumentsStaticMethod(@T1 t1, {@T1 t2 = t1Default}) {}
+    static positionalArgumentsStaticMethod(@T1 t1, [@T1 t2 = t1Default]) {}
 
-    namedArgumentsMethod(@T1 t1, {@T1 t2}) {}
-    positionalArgumentsMethod(@T1 t1, [@T1 t2]) {}
+    namedArgumentsMethod(@T1 t1, {@T1 t2 = t1Default}) {}
+    positionalArgumentsMethod(@T1 t1, [@T1 t2 = t1Default]) {}
 
     set testSetter(@T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_mixin_fail_x01.dart b/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_mixin_fail_x01.dart
index 357d817..432c54e 100644
--- a/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_mixin_fail_x01.dart
+++ b/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_mixin_fail_x01.dart
@@ -14,8 +14,8 @@
 
 class ArgumentsBindingSuper1_t03 {
   void superTest(@T1 val) {}
-  void superTestPositioned(@T1 val, [@T1 val2]) {}
-  void superTestNamed(@T1 val, {@T1 val2}) {}
+  void superTestPositioned(@T1 val, [@T1 val2 = t1Default]) {}
+  void superTestNamed(@T1 val, {@T1 val2 = t1Default}) {}
   @T1 get superGetter => t0Instance; //# 07: compile-time error
   void set superSetter(@T1 val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_super_fail_x01.dart b/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_super_fail_x01.dart
index 7039fd7..7911bc9 100644
--- a/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_super_fail_x01.dart
+++ b/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_super_fail_x01.dart
@@ -15,14 +15,14 @@
 class ArgumentsBindingSuper1_t02 {
   @T1 m;
 
-  ArgumentsBindingSuper1_t02(@T1 value) {}
-  ArgumentsBindingSuper1_t02.named(@T1 value, {@T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(@T1 value, [@T1 val2]) {}
+  ArgumentsBindingSuper1_t02(@T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(@T1 value, {@T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(@T1 value, [@T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(@T1 val) {}
-  void superTestPositioned(@T1 val, [@T1 val2]) {}
-  void superTestNamed(@T1 val, {@T1 val2}) {}
+  void superTestPositioned(@T1 val, [@T1 val2 = t1Default]) {}
+  void superTestNamed(@T1 val, {@T1 val2 = t1Default}) {}
   @T1 get superGetter => t0Instance; //# 35: compile-time error
   void set superSetter(@T1 val) {}
 }
@@ -35,7 +35,7 @@
   ArgumentsBinding1_t02.c4(@T1 t1, @T0 t2) : super.positional(t1, t2) {} //# 05: compile-time error
   ArgumentsBinding1_t02.c5(@T1 t1) : super.short(t1) {} //# 06: compile-time error
 
-  ArgumentsBinding1_t02.valid() : super(null) {}
+  ArgumentsBinding1_t02.valid() : super(t1Default) {}
 
   test() {
     superTest(t0Instance); //# 14: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_x01.dart b/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_x01.dart
index 2f0e5a5..2ff607b 100644
--- a/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_x01.dart
+++ b/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_x01.dart
@@ -9,30 +9,29 @@
  * @author sgrekhov@unipro.ru
  */
 
-namedArgumentsFunc1(@T1 t1, {@T1 t2}) {}
-positionalArgumentsFunc1(@T1 t1, [@T1 t2]) {}
+namedArgumentsFunc1(@T1 t1, {@T1 t2 = t1Default}) {}
+positionalArgumentsFunc1(@T1 t1, [@T1 t2 = t1Default]) {}
 
-namedArgumentsFunc2<X>(X t1, {X t2}) {}
-positionalArgumentsFunc2<X>(X t1, [X t2]) {}
+namedArgumentsFunc2<X>(X t1, {required X t2}) {}
 
 class ArgumentsBindingClass {
   ArgumentsBindingClass(@T1 t1) {}
 
-  ArgumentsBindingClass.named(@T1 t1, {@T1 t2}) {}
-  ArgumentsBindingClass.positional(@T1 t1, [@T1 t2]) {}
+  ArgumentsBindingClass.named(@T1 t1, {@T1 t2 = t1Default}) {}
+  ArgumentsBindingClass.positional(@T1 t1, [@T1 t2 = t1Default]) {}
 
-  factory ArgumentsBindingClass.fNamed(@T1 t1, {@T1 t2}) {
+  factory ArgumentsBindingClass.fNamed(@T1 t1, {@T1 t2 = t1Default}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(@T1 t1, [@T1 t2]) {
+  factory ArgumentsBindingClass.fPositional(@T1 t1, [@T1 t2 = t1Default]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(@T1 t1, {@T1 t2}) {}
-  static positionalArgumentsStaticMethod(@T1 t1, [@T1 t2]) {}
+  static namedArgumentsStaticMethod(@T1 t1, {@T1 t2 = t1Default}) {}
+  static positionalArgumentsStaticMethod(@T1 t1, [@T1 t2 = t1Default]) {}
 
-  namedArgumentsMethod(@T1 t1, {@T1 t2}) {}
-  positionalArgumentsMethod(@T1 t1, [@T1 t2]) {}
+  namedArgumentsMethod(@T1 t1, {@T1 t2 = t1Default}) {}
+  positionalArgumentsMethod(@T1 t1, [@T1 t2 = t1Default]) {}
 
   set testSetter(@T1 val) {}
 }
@@ -40,18 +39,13 @@
 class ArgumentsBindingGen<X>  {
   ArgumentsBindingGen(X t1) {}
 
-  ArgumentsBindingGen.named(X t1, {X t2}) {}
-  ArgumentsBindingGen.positional(X t1, [X t2]) {}
+  ArgumentsBindingGen.named(X t1, {required X t2}) {}
 
-  factory ArgumentsBindingGen.fNamed(X t1, {X t2}) {
+  factory ArgumentsBindingGen.fNamed(X t1, {required X t2}) {
     return new ArgumentsBindingGen.named(t1, t2: t2);
   }
-  factory ArgumentsBindingGen.fPositional(X t1, [X t2]) {
-    return new ArgumentsBindingGen.positional(t1, t2);
-  }
 
-  namedArgumentsMethod(X t1, {X t2}) {}
-  positionalArgumentsMethod(X t1, [X t2]){}
+  namedArgumentsMethod(X t1, {required X t2}) {}
 
   set testSetter(X val) {}
 }
@@ -82,18 +76,14 @@
   //# <-- NotGenericFunctionType
   // test generic functions
   namedArgumentsFunc2<@T1>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<@T1>(t0Instance, t0Instance);
 
   // test generic class constructors
   ArgumentsBindingGen<@T1> instance2 = new ArgumentsBindingGen<@T1>(t0Instance);
   instance2 = new ArgumentsBindingGen<@T1>.fNamed(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<@T1>.fPositional(t0Instance, t0Instance);
   instance2 = new ArgumentsBindingGen<@T1>.named(t0Instance, t2: t0Instance);
-  instance2 = new ArgumentsBindingGen<@T1>.positional(t0Instance, t0Instance);
 
   // test generic class methods and setters
   instance2.namedArgumentsMethod(t0Instance, t2: t0Instance);
-  instance2.positionalArgumentsMethod(t0Instance, t0Instance);
   instance2.testSetter = t0Instance;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_x02.dart b/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_x02.dart
index e7ef20b..512bb0d 100644
--- a/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_x02.dart
+++ b/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_x02.dart
@@ -12,14 +12,14 @@
 class ArgumentsBindingSuper1_t02 {
   @T1 m;
 
-  ArgumentsBindingSuper1_t02(@T1 value) {}
-  ArgumentsBindingSuper1_t02.named(@T1 value, {@T1 val2}) {}
-  ArgumentsBindingSuper1_t02.positional(@T1 value, [@T1 val2]) {}
+  ArgumentsBindingSuper1_t02(@T1 value): m = value {}
+  ArgumentsBindingSuper1_t02.named(@T1 value, {@T1 val2 = t1Default}): m = value {}
+  ArgumentsBindingSuper1_t02.positional(@T1 value, [@T1 val2 = t1Default]): m = value {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
   void superTest(@T1 val) {}
-  void superTestPositioned(@T1 val, [@T1 val2]) {}
-  void superTestNamed(@T1 val, {@T1 val2}) {}
+  void superTestPositioned(@T1 val, [@T1 val2 = t1Default]) {}
+  void superTestNamed(@T1 val, {@T1 val2 = t1Default}) {}
   @T1 get superGetter => m;
   void set superSetter(@T1 val) {}
 }
@@ -47,31 +47,23 @@
 class ArgumentsBindingSuper2_t02<X> {
   X m;
 
-  ArgumentsBindingSuper2_t02(X value) {}
-  ArgumentsBindingSuper2_t02.named(X value, {X val2}) {}
-  ArgumentsBindingSuper2_t02.positional(X value, [X val2]) {}
+  ArgumentsBindingSuper2_t02(X value): m = value {}
+  ArgumentsBindingSuper2_t02.named(X value, {required X val2}): m = value {}
   ArgumentsBindingSuper2_t02.short(this.m);
 
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
+  void superTestNamed(X val, {required X val2}) {}
   X get superGetter => m;
   void set superSetter(X val) {}
 }
 
 class ArgumentsBinding2_t02<X> extends ArgumentsBindingSuper2_t02<X> {
   ArgumentsBinding2_t02(X t1) : super(t1) {}
-  ArgumentsBinding2_t02.c1(dynamic t1) : super.named(t1) {}
   ArgumentsBinding2_t02.c2(dynamic t1, dynamic t2) : super.named(t1, val2: t2) {}
-  ArgumentsBinding2_t02.c3(dynamic t1) : super.positional(t1) {}
-  ArgumentsBinding2_t02.c4(dynamic t1, dynamic t2) : super.positional(t1, t2) {}
   ArgumentsBinding2_t02.c5(dynamic t1) : super.short(t1) {}
 
   test(X t1, X t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
     m = t1;
@@ -101,17 +93,11 @@
   //# <-- NotGenericFunctionType
   ArgumentsBinding2_t02<@T1> c2 =
     new ArgumentsBinding2_t02<@T1>(t0Instance);
-  c2 = new ArgumentsBinding2_t02<@T1>.c1(t0Instance);
   c2 = new ArgumentsBinding2_t02<@T1>.c2(t1Instance, t0Instance);
-  c2 = new ArgumentsBinding2_t02<@T1>.c3(t0Instance);
-  c2 = new ArgumentsBinding2_t02<@T1>.c4(t1Instance, t0Instance);
   c2 = new ArgumentsBinding2_t02<@T1>.c5(t0Instance);
 
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
   c2.superGetter;
diff --git a/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_x03.dart b/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_x03.dart
index 378b74b..a3d94af 100644
--- a/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_x03.dart
+++ b/LanguageFeatures/Subtyping/static/test_cases/arguments_binding_x03.dart
@@ -10,11 +10,11 @@
  */
 
 class ArgumentsBindingMixin1_t03 {
-  @T1 m;
+  @T1 m = t1Default;
 
   void superTest(@T1 val) {}
-  void superTestPositioned(@T1 val, [@T1 val2]) {}
-  void superTestNamed(@T1 val, {@T1 val2}) {}
+  void superTestPositioned(@T1 val, [@T1 val2 = t1Default]) {}
+  void superTestNamed(@T1 val, {@T1 val2 = t1Default}) {}
   @T1 get superGetter => m;
   void set superSetter(@T1 val) {}
 }
@@ -34,12 +34,8 @@
 }
 
 class ArgumentsBindingMixin2_t03<X> {
-  X m;
-
   void superTest(X val) {}
-  void superTestPositioned(X val, [X val2]) {}
-  void superTestNamed(X val, {X val2}) {}
-  X get superGetter => m;
+  void superTestNamed(X val, {required X val2}) {}
   void set superSetter(X val) {}
 }
 
@@ -47,13 +43,8 @@
 
   test(dynamic t1, dynamic t2) {
     superTest(t1);
-    superTestPositioned(t1);
-    superTestPositioned(t2, t1);
-    superTestNamed(t1);
     superTestNamed(t2, val2: t1);
     superSetter = t1;
-    m = t1;
-    superGetter;
   }
 }
 
@@ -75,11 +66,7 @@
   ArgumentsBinding2_t03<@T1> c2 = new ArgumentsBinding2_t03<@T1>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
-  c2.superTestPositioned(t0Instance);
-  c2.superTestPositioned(t1Instance, t0Instance);
-  c2.superTestNamed(t0Instance);
   c2.superTestNamed(t1Instance, val2: t0Instance);
   c2.superSetter = t0Instance;
-  c2.superGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/test_cases/class_member_fail_x01.dart b/LanguageFeatures/Subtyping/static/test_cases/class_member_fail_x01.dart
index f08f88e..a56b018 100644
--- a/LanguageFeatures/Subtyping/static/test_cases/class_member_fail_x01.dart
+++ b/LanguageFeatures/Subtyping/static/test_cases/class_member_fail_x01.dart
@@ -13,7 +13,7 @@
  */
 
 class ClassMemberTestStatic {
-  static @T1 s;
+  static @T1 s = t1Default;
 
   ClassMemberTestStatic(@T0 val) {
     s = val; //# 01: compile-time error
@@ -31,7 +31,7 @@
 }
 
 class ClassMemberTestPublic {
-  @T1 m;
+  @T1 m = t1Default;
 
   ClassMemberTestPublic(@T0 val) {
     m = val; //# 05: compile-time error
@@ -53,7 +53,7 @@
 }
 
 class ClassMemberTestPrivate {
-  @T1 _m;
+  @T1 _m = t1Default;
 
   ClassMemberTestPrivate(@T0 val) {
     _m = val; //# 10: compile-time error
@@ -94,4 +94,3 @@
   ClassMemberTestInitFail.s; //# 13: compile-time error
   new ClassMemberTestInitFail(); //# 14: compile-time error
 }
-
diff --git a/LanguageFeatures/Subtyping/static/test_cases/class_member_mixin_fail_x01.dart b/LanguageFeatures/Subtyping/static/test_cases/class_member_mixin_fail_x01.dart
index 77b01c6..7991af7 100644
--- a/LanguageFeatures/Subtyping/static/test_cases/class_member_mixin_fail_x01.dart
+++ b/LanguageFeatures/Subtyping/static/test_cases/class_member_mixin_fail_x01.dart
@@ -13,7 +13,7 @@
  */
 
 class ClassMemberSuper1_t03 {
-  @T1 m;
+  @T1 m = t1Default;
   void set superSetter(@T1 val) {} //# 02: compile-time error
 }
 
diff --git a/LanguageFeatures/Subtyping/static/test_cases/class_member_super_fail_x01.dart b/LanguageFeatures/Subtyping/static/test_cases/class_member_super_fail_x01.dart
index 5991b0e..15f1529 100644
--- a/LanguageFeatures/Subtyping/static/test_cases/class_member_super_fail_x01.dart
+++ b/LanguageFeatures/Subtyping/static/test_cases/class_member_super_fail_x01.dart
@@ -13,7 +13,7 @@
  */
 
 class ClassMemberSuper1_t02 {
-  @T1 m;
+  @T1 m = t1Default;
 
   ClassMemberSuper1_t02(@T0 value) {
     m = value; //# 01: compile-time error
diff --git a/LanguageFeatures/Subtyping/static/test_cases/class_member_x02.dart b/LanguageFeatures/Subtyping/static/test_cases/class_member_x02.dart
index 80218d9..425aab7 100644
--- a/LanguageFeatures/Subtyping/static/test_cases/class_member_x02.dart
+++ b/LanguageFeatures/Subtyping/static/test_cases/class_member_x02.dart
@@ -10,7 +10,7 @@
  */
 
 class ClassMemberSuper1_t02 {
-  @T1 m;
+  @T1 m = t1Default;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
diff --git a/LanguageFeatures/Subtyping/static/test_cases/class_member_x03.dart b/LanguageFeatures/Subtyping/static/test_cases/class_member_x03.dart
index dc22609..408289a 100644
--- a/LanguageFeatures/Subtyping/static/test_cases/class_member_x03.dart
+++ b/LanguageFeatures/Subtyping/static/test_cases/class_member_x03.dart
@@ -10,7 +10,7 @@
  */
 
 class ClassMemberMixin1_t03 {
-  @T1 m;
+  @T1 m = t1Default;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/test_cases/local_variable_fail_x01.dart b/LanguageFeatures/Subtyping/static/test_cases/local_variable_fail_x01.dart
index a28481c..59c5975 100644
--- a/LanguageFeatures/Subtyping/static/test_cases/local_variable_fail_x01.dart
+++ b/LanguageFeatures/Subtyping/static/test_cases/local_variable_fail_x01.dart
@@ -14,30 +14,25 @@
 
 class LocalVariableTest {
   LocalVariableTest() {
-    @T1 t1 = null;
-    t1 = t0Instance; //# 03: compile-time error
+    @T1 t1 = t0Instance; //# 03: compile-time error
   }
 
   LocalVariableTest.valid() {}
 
   test() {
-    @T1 t1 = null;
-    t1 = t0Instance; //# 04: compile-time error
+    @T1 t1 = t0Instance; //# 04: compile-time error
   }
 
   static staticTest() {
-    @T1 t1 = null;
-    t1 = t0Instance; //# 05: compile-time error
+    @T1 t1 = t0Instance; //# 05: compile-time error
   }
 }
 
 main() {
-  @T1 t1 = null;
-  t1 = t0Instance; //# 01: compile-time error
+  @T1 t1 = t0Instance; //# 01: compile-time error
 
   bar () {
-    @T1 t1 = null;
-    t1 = t0Instance; //# 02: compile-time error
+    @T1 t1 = t0Instance; //# 02: compile-time error
   }
   bar(); //# 02: compile-time error
 
diff --git a/LanguageFeatures/Subtyping/static/test_types/left_promoted_variable_A01.dart b/LanguageFeatures/Subtyping/static/test_types/left_promoted_variable_A01.dart
index ed08199..eb9170d 100644
--- a/LanguageFeatures/Subtyping/static/test_types/left_promoted_variable_A01.dart
+++ b/LanguageFeatures/Subtyping/static/test_types/left_promoted_variable_A01.dart
@@ -12,7 +12,9 @@
  * is subtype of T1 then T0 is a subtype of T1.
  * @author sgrekhov@unipro.ru
  */
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -22,6 +24,8 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 //# <!-- Global variables & classes definition -->
 
 main() {
diff --git a/LanguageFeatures/Subtyping/static/test_types/left_promoted_variable_A02.dart b/LanguageFeatures/Subtyping/static/test_types/left_promoted_variable_A02.dart
index 9fd0c39..3a8b6ab 100644
--- a/LanguageFeatures/Subtyping/static/test_types/left_promoted_variable_A02.dart
+++ b/LanguageFeatures/Subtyping/static/test_types/left_promoted_variable_A02.dart
@@ -12,7 +12,9 @@
  * is subtype of T1 then T0 is a subtype of T1.
  * @author sgrekhov@unipro.ru
  */
-class T1 {}
+class T1 {
+  const T1();
+}
 class X0 {}
 class S0 extends X0 implements T1 {}
 
@@ -22,6 +24,8 @@
 S0 t0Instance = new S0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 //# <!-- Global variables & classes definition -->
 
 test<T>(T t0Instance) {
diff --git a/LanguageFeatures/Subtyping/static/test_types/left_promoted_variable_A03.dart b/LanguageFeatures/Subtyping/static/test_types/left_promoted_variable_A03.dart
deleted file mode 100644
index 05c04c0..0000000
--- a/LanguageFeatures/Subtyping/static/test_types/left_promoted_variable_A03.dart
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-//# @T0 = X0
-//# @T1 = T1
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-//# <!-- Global variables & classes definition -->
-
-main() {
-  X0 t0Instance = new S0();
-
-  if (t0Instance is S0) {
-    //# <!-- Test body -->
-  }
-}
diff --git a/LanguageFeatures/Subtyping/static/test_types/left_promoted_variable_A04.dart b/LanguageFeatures/Subtyping/static/test_types/left_promoted_variable_A04.dart
deleted file mode 100644
index 2b97eec..0000000
--- a/LanguageFeatures/Subtyping/static/test_types/left_promoted_variable_A04.dart
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-/**
- * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
- * when:
- * Left Promoted Variable: T0 is a promoted type variable X0 & S0
- * and S0 <: T1
- * @description Check that if type T0 is a promoted type variable X0 & S0 and S0
- * is subtype of T1 then T0 is a subtype of T1.
- * @author sgrekhov@unipro.ru
- */
-class T1 {}
-class X0 {}
-class S0 extends X0 with T1 {}
-
-//# @T0 = X0
-//# @T1 = T1
-
-S0 t0Instance = new S0();
-T1 t1Instance = new T1();
-
-//# <!-- Global variables & classes definition -->
-
-test<T>(T t0Instance) {
-  if (t0Instance is S0) {
-  //# <!-- Test body -->
-  }
-}
-
-main() {
-  test<S0>(t0Instance);
-}
diff --git a/LanguageFeatures/Subtyping/static/test_types/right_object_A02.dart b/LanguageFeatures/Subtyping/static/test_types/right_object_A02.dart
index 2a1bd34..0b25e55 100644
--- a/LanguageFeatures/Subtyping/static/test_types/right_object_A02.dart
+++ b/LanguageFeatures/Subtyping/static/test_types/right_object_A02.dart
@@ -26,6 +26,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 //# @T0 = S
 //# @T1 = Object
 
diff --git a/LanguageFeatures/Subtyping/static/test_types/right_object_A03.dart b/LanguageFeatures/Subtyping/static/test_types/right_object_A03.dart
index d20fc02..945cb4a 100644
--- a/LanguageFeatures/Subtyping/static/test_types/right_object_A03.dart
+++ b/LanguageFeatures/Subtyping/static/test_types/right_object_A03.dart
@@ -26,6 +26,8 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 //# @T0 = S
 //# @T1 = Object
 
diff --git a/LanguageFeatures/Subtyping/static/test_types/right_object_fail_A01.dart b/LanguageFeatures/Subtyping/static/test_types/right_object_fail_A01.dart
index b813b1f..c94b1c8 100644
--- a/LanguageFeatures/Subtyping/static/test_types/right_object_fail_A01.dart
+++ b/LanguageFeatures/Subtyping/static/test_types/right_object_fail_A01.dart
@@ -23,10 +23,12 @@
 class B {}
 class T0 extends B {}
 
-T0 t0Instance = new T0();
+T0? t0Instance = new T0();
 Object t1Instance = new Object();
 
-//# @T0 = T0
+const t1Default = const Object();
+
+//# @T0 = T0?
 //# @T1 = Object
 
 //# <!-- Global variables & classes definition -->
@@ -36,5 +38,5 @@
 }
 
 main() {
-  test<T0>(t0Instance);
+  test<T0?>(t0Instance);
 }
diff --git a/LanguageFeatures/Subtyping/static/test_types/right_object_fail_A02.dart b/LanguageFeatures/Subtyping/static/test_types/right_object_fail_A02.dart
index 49b9f26..adcefe5 100644
--- a/LanguageFeatures/Subtyping/static/test_types/right_object_fail_A02.dart
+++ b/LanguageFeatures/Subtyping/static/test_types/right_object_fail_A02.dart
@@ -26,7 +26,9 @@
 S t0Instance = new S();
 Object t1Instance = new Object();
 
-//# @T0 = S
+const t1Default = const Object();
+
+//# @T0 = S?
 //# @T1 = Object
 
 //# <!-- Global variables & classes definition -->
diff --git a/LanguageFeatures/Subtyping/static/test_types/type_variable_reflexivity_1_A01.dart b/LanguageFeatures/Subtyping/static/test_types/type_variable_reflexivity_1_A01.dart
index 1095bbe..de83106 100644
--- a/LanguageFeatures/Subtyping/static/test_types/type_variable_reflexivity_1_A01.dart
+++ b/LanguageFeatures/Subtyping/static/test_types/type_variable_reflexivity_1_A01.dart
@@ -12,7 +12,9 @@
  * is X0 then T0 is a subtype of T1.
  * @author sgrekhov@unipro.ru
  */
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 //# @T0 = S0
@@ -21,6 +23,8 @@
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 //# <!-- Global variables & classes definition -->
 
 main() {
diff --git a/LanguageFeatures/Subtyping/static/test_types/type_variable_reflexivity_1_A02.dart b/LanguageFeatures/Subtyping/static/test_types/type_variable_reflexivity_1_A02.dart
index c787730..cc77de9 100644
--- a/LanguageFeatures/Subtyping/static/test_types/type_variable_reflexivity_1_A02.dart
+++ b/LanguageFeatures/Subtyping/static/test_types/type_variable_reflexivity_1_A02.dart
@@ -12,7 +12,9 @@
  * is X0 then T0 is a subtype of T1.
  * @author sgrekhov@unipro.ru
  */
-class X0 {}
+class X0 {
+  const X0();
+}
 class S0 extends X0 {
 }
 
@@ -22,6 +24,8 @@
 X0 t0Instance = new S0();
 X0 t1Instance = new X0();
 
+const t1Default = const X0();
+
 //# <!-- Global variables & classes definition -->
 
 test<T>(T t0Instance) {
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A01.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A01.dart
index 48217ce..8191fee 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A01.dart
@@ -11,11 +11,14 @@
  * T0 is a subtype of T1. Test void function without actual arguments
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 typedef void T0();
 
 void t0Instance() {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A02.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A02.dart
index 018603a..1f4e4ac 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A02.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A02.dart
@@ -12,13 +12,16 @@
  * returning some value
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0();
 
 void t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A03.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A03.dart
index 353cdc7..b4472df 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A03.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A03.dart
@@ -12,13 +12,17 @@
  * some value
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0();
 
 C t0Instance() => new C();
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
+
 
 //# @T0 = T0
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A04.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A04.dart
index 82b2dcf..423db88 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A04.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A04.dart
@@ -11,13 +11,16 @@
  * T0 is a subtype of T1. Test void function with required arguments
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c);
 
 void t0Instance(C c) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A05.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A05.dart
index 1f8cdfc..5e4f412 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A05.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A05.dart
@@ -11,13 +11,16 @@
  * T0 is a subtype of T1. Test non-void function with required arguments
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c);
 
 C t0Instance(C c) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A06.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A06.dart
index 87df8ea..79dbb6b 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A06.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A06.dart
@@ -11,13 +11,16 @@
  * T0 is a subtype of T1. Test void function with positional arguments
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, [dynamic d]);
 
 void t0Instance(C c, [dynamic d]) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A07.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A07.dart
index 868821a..5a4a7b3 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A07.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A07.dart
@@ -11,13 +11,16 @@
  * T0 is a subtype of T1. Test non-void function with positional arguments
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, [dynamic d]);
 
 C t0Instance(C c, [dynamic d]) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A08.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A08.dart
index 3031da6..caa85fd 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A08.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A08.dart
@@ -11,13 +11,16 @@
  * T0 is a subtype of T1. Test void function with named arguments
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0(C c, {dynamic d});
 
 void t0Instance(C c, {dynamic d}) {}
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A09.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A09.dart
index 1e9da08..6c6afcc 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A09.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A09.dart
@@ -11,13 +11,16 @@
  * T0 is a subtype of T1. Test non-void function with named arguments
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0(C c, {dynamic d});
 
 C t0Instance(C c, {dynamic d}) => c;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A10.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A10.dart
index 8f2e99a..9fbd560 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A10.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A10.dart
@@ -11,14 +11,17 @@
  * T0 is a subtype of T1. Test void generic function without actual arguments
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0<C>
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A11.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A11.dart
index d9680ea..bacdcfc 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A11.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A11.dart
@@ -12,14 +12,17 @@
  * but returning some value
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>();
 void t0Func<X>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0<C>
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A12.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A12.dart
index e412387..429ba77 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A12.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A12.dart
@@ -12,14 +12,17 @@
  * returning some value
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X extends C>();
 C t0Func<X extends C>() => new C();
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0<C>
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A13.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A13.dart
index da7450f..92afa85 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A13.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A13.dart
@@ -11,14 +11,17 @@
  * T0 is a subtype of T1. Test void generic function with required arguments
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c);
 void t0Func<X>(C c) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0<C>
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A14.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A14.dart
index 07a56e0..1b7da12 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A14.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A14.dart
@@ -11,14 +11,17 @@
  * T0 is a subtype of T1. Test non-void generic function with required arguments
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef X T0<X>(X x);
 X t0Func<X>(X x) => x;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0<C>
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A15.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A15.dart
index aa553fd..16319d9 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A15.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A15.dart
@@ -11,14 +11,17 @@
  * T0 is a subtype of T1. Test void generic function with positional arguments
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, [X d]);
 void t0Func<X>(C c, [X d]) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0<C>
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A16.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A16.dart
index 924a373..ec2460e 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A16.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A16.dart
@@ -12,14 +12,17 @@
  * arguments
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, [X d]);
 C t0Func<X>(C c, [X d]) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0<C>
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A17.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A17.dart
index 97c3604..9e7400b 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A17.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A17.dart
@@ -11,14 +11,17 @@
  * T0 is a subtype of T1. Test void generic function with named arguments
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef void T0<X>(C c, {X x});
 void t0Func<X>(C c, {X x}) {}
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0<C>
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/function_type_function_A18.dart b/LanguageFeatures/Subtyping/test_types/function_type_function_A18.dart
index 775730c..12c54b6 100644
--- a/LanguageFeatures/Subtyping/test_types/function_type_function_A18.dart
+++ b/LanguageFeatures/Subtyping/test_types/function_type_function_A18.dart
@@ -11,14 +11,17 @@
  * T0 is a subtype of T1. Test non-void generic function with named arguments
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class C {}
 
 typedef C T0<X>(C c, {X x});
 C t0Func<X>(C c, {X x}) => c;
 
 T0<C> t0Instance = t0Func;
-Function t1Instance = null;
+Function t1Instance = () {};
+
+void foo() {}
+const t1Default = foo;
 
 //# @T0 = T0<C>
 //# @T1 = Function
diff --git a/LanguageFeatures/Subtyping/test_types/interface_compositionality_A01.dart b/LanguageFeatures/Subtyping/test_types/interface_compositionality_A01.dart
index c8c305a..03dfac5 100644
--- a/LanguageFeatures/Subtyping/test_types/interface_compositionality_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/interface_compositionality_A01.dart
@@ -13,7 +13,7 @@
  * subtype of T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -22,10 +22,14 @@
 abstract class S1 extends U1 {}
 abstract class S2 extends U2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 //# @T0 = C0<S0, S1, S2>
 //# @T1 = C0<U0, U1, U2>
diff --git a/LanguageFeatures/Subtyping/test_types/interface_compositionality_A02.dart b/LanguageFeatures/Subtyping/test_types/interface_compositionality_A02.dart
index bd3723d..b996ed0 100644
--- a/LanguageFeatures/Subtyping/test_types/interface_compositionality_A02.dart
+++ b/LanguageFeatures/Subtyping/test_types/interface_compositionality_A02.dart
@@ -13,7 +13,7 @@
  * subtype of T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -22,10 +22,14 @@
 abstract class S1 extends Object with U1 {}
 class S2 = Object with U2;
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 //# @T0 = C0<S0, S1, S2>
 //# @T1 = C0<U0, U1, U2>
diff --git a/LanguageFeatures/Subtyping/test_types/interface_compositionality_fail_A01.dart b/LanguageFeatures/Subtyping/test_types/interface_compositionality_fail_A01.dart
index 4dc935e..48da852 100644
--- a/LanguageFeatures/Subtyping/test_types/interface_compositionality_fail_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/interface_compositionality_fail_A01.dart
@@ -13,7 +13,7 @@
  * not a subtype of T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 abstract class U0 {}
 abstract class U1 {}
 abstract class U2 {}
@@ -23,10 +23,14 @@
 // no subtype relation between S2 and U2
 abstract class S2 {}
 
-class C0<X, Y, Z> {}
+class C0<X, Y, Z> {
+  const C0();
+}
 
 C0<S0, S1, S2> t0Instance = new C0<S0, S1, S2>();
 C0<U0, U1, U2> t1Instance = new C0<U0, U1, U2>();
 
+const t1Default = const C0<U0, U1, U2>();
+
 //# @T0 = C0<S0, S1, S2>
 //# @T1 = C0<U0, U1, U2>
diff --git a/LanguageFeatures/Subtyping/test_types/left_FutureOr_A01.dart b/LanguageFeatures/Subtyping/test_types/left_FutureOr_A01.dart
index eff0296..f3b7184 100644
--- a/LanguageFeatures/Subtyping/test_types/left_FutureOr_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/left_FutureOr_A01.dart
@@ -14,14 +14,18 @@
  * when an instance of T0 is an instance of S0 type.
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new S0();
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 //# @T0 = FutureOr<S0>
 //# @T1 = FutureOr<C>
diff --git a/LanguageFeatures/Subtyping/test_types/left_FutureOr_A02.dart b/LanguageFeatures/Subtyping/test_types/left_FutureOr_A02.dart
index b0fbe20..5bb1f3d 100644
--- a/LanguageFeatures/Subtyping/test_types/left_FutureOr_A02.dart
+++ b/LanguageFeatures/Subtyping/test_types/left_FutureOr_A02.dart
@@ -14,14 +14,18 @@
  * when an instance of T0 is an instance of Future<S0> type.
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C {}
+class C {
+  const C();
+}
 class S0 extends C {}
 
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 FutureOr<C> t1Instance = new Future<C>.value(new C());
 
+const t1Default = const C();
+
 //# @T0 = FutureOr<S0>
 //# @T1 = FutureOr<C>
diff --git a/LanguageFeatures/Subtyping/test_types/left_FutureOr_A03.dart b/LanguageFeatures/Subtyping/test_types/left_FutureOr_A03.dart
index 4cd6ea9..9e52ad8 100644
--- a/LanguageFeatures/Subtyping/test_types/left_FutureOr_A03.dart
+++ b/LanguageFeatures/Subtyping/test_types/left_FutureOr_A03.dart
@@ -14,16 +14,20 @@
  * when an instance of T0 is an instance of S0 type and S0 is a generic type
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new S0<B>();
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C());
 
+const t1Default = const C<A>();
+
 //# @T0 = FutureOr<S0<B>>
 //# @T1 = FutureOr<C<A>>
diff --git a/LanguageFeatures/Subtyping/test_types/left_FutureOr_A04.dart b/LanguageFeatures/Subtyping/test_types/left_FutureOr_A04.dart
index 47ea59f..b98ddaa 100644
--- a/LanguageFeatures/Subtyping/test_types/left_FutureOr_A04.dart
+++ b/LanguageFeatures/Subtyping/test_types/left_FutureOr_A04.dart
@@ -15,16 +15,20 @@
  * type
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
 class A {}
 class B extends A {}
-class C<X> {}
+class C<X> {
+  const C();
+}
 class S0<X> extends C<X> {}
 
 FutureOr<S0<B>> t0Instance = new Future<S0<B>>.value(new S0<B>());
 FutureOr<C<A>> t1Instance = new Future<C<A>>.value(new C<A>());
 
+const t1Default = const C<A>();
+
 //# @T0 = FutureOr<S0<B>>
 //# @T1 = FutureOr<C<A>>
diff --git a/LanguageFeatures/Subtyping/test_types/left_FutureOr_fail_A02.dart b/LanguageFeatures/Subtyping/test_types/left_FutureOr_fail_A02.dart
index dd501a2..a2c8729 100644
--- a/LanguageFeatures/Subtyping/test_types/left_FutureOr_fail_A02.dart
+++ b/LanguageFeatures/Subtyping/test_types/left_FutureOr_fail_A02.dart
@@ -14,14 +14,18 @@
  * a type T1.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class T1 {}
+class T1 {
+  const T1();
+}
 class S0 extends T1 {}
 
 FutureOr<S0> t0Instance = Future<S0>.value(new S0()); // Future<S0> is not a subtype of T1
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 //# @T0 = FutureOr<S0>
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/left_FutureOr_fail_A03.dart b/LanguageFeatures/Subtyping/test_types/left_FutureOr_fail_A03.dart
index 8b59b39..b93995d 100644
--- a/LanguageFeatures/Subtyping/test_types/left_FutureOr_fail_A03.dart
+++ b/LanguageFeatures/Subtyping/test_types/left_FutureOr_fail_A03.dart
@@ -14,10 +14,12 @@
  * a type T1. Case when an instance of T0 is an instance of Future<S0> type.
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class C1 {}
+class C1 {
+  const C1();
+}
 class S0 implements Future<C1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -30,5 +32,7 @@
 FutureOr<S0> t0Instance = new Future<S0>.value(new S0());
 Future<C1> t1Instance = new Future.value(new C1());
 
+const t1Default = const C1();
+
 //# @T0 = FutureOr<S0>
 //# @T1 = Future<C1>
diff --git a/LanguageFeatures/Subtyping/test_types/left_top_A01.dart b/LanguageFeatures/Subtyping/test_types/left_top_A01.dart
index 022f5a8..303d02c 100644
--- a/LanguageFeatures/Subtyping/test_types/left_top_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/left_top_A01.dart
@@ -13,10 +13,14 @@
  */
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 dynamic t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 //# @T0 = dynamic
 //# @T1 = Object?
diff --git a/LanguageFeatures/Subtyping/test_types/left_top_A02.dart b/LanguageFeatures/Subtyping/test_types/left_top_A02.dart
index 42d7da8..5b6a639 100644
--- a/LanguageFeatures/Subtyping/test_types/left_top_A02.dart
+++ b/LanguageFeatures/Subtyping/test_types/left_top_A02.dart
@@ -13,10 +13,14 @@
  */
 // SharedOptions=--enable-experiment=non-nullable
 
-class T1 {}
+class T1 {
+  const T1();
+}
 
 void t0Instance = "Show must go on";
 T1? t1Instance = new T1();
 
+const t1Default = const T1();
+
 //# @T0 = Void
 //# @T1 = Object?
diff --git a/LanguageFeatures/Subtyping/test_types/left_type_variable_bound_A01.dart b/LanguageFeatures/Subtyping/test_types/left_type_variable_bound_A01.dart
index 8706d37..35f4e08 100644
--- a/LanguageFeatures/Subtyping/test_types/left_type_variable_bound_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/left_type_variable_bound_A01.dart
@@ -12,13 +12,17 @@
  * B0 <: T1 then T0 is a subtype of a type T1
  * @author ngl@unipro.ru
  */
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 extends T1 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 //# @T0 = X0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/left_type_variable_bound_fail_A01.dart b/LanguageFeatures/Subtyping/test_types/left_type_variable_bound_fail_A01.dart
index 1f19919..e42e464 100644
--- a/LanguageFeatures/Subtyping/test_types/left_type_variable_bound_fail_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/left_type_variable_bound_fail_A01.dart
@@ -12,13 +12,17 @@
  * B0 is not a subtype of T1 then T0 is not a subtype of a type T1.
  * @author ngl@unipro.ru
  */
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 class B0 {}
 class X0 extends B0 {}
 
 X0 t0Instance = new X0();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 //# @T0 = X0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_A01.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_A01.dart
index b59ba68..dd9fb25 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_A01.dart
@@ -20,6 +20,7 @@
  * subtype of T1
  * @author sgrekhov@unipro.ru
  */
+// SharedOptions=--enable-experiment=non-nullable
 
 class U0 extends U1 {}
 class U1 {}
@@ -33,13 +34,16 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_A02.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_A02.dart
index a2f07ed..0310a39 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_A02.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_A02.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -61,22 +61,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_A03.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_A03.dart
index 9e9bc2a..ac99596 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_A03.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_A03.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types with high-level types
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -61,22 +61,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4});
+    {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3, V4<dynamic, void, Object>? x4});
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        {V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3, V4<dynamic, void, Object> x4}) =>
-    null;
+        {V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3,
+        V4<dynamic, void, Object>? x4}) => new U0<C, List<String>, int>();
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_A04.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_A04.dart
index e1d3561..51c8572 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_A04.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_A04.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types with Null type
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -61,22 +61,25 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3});
+    {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3});
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num> x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-        {S2<Null, Null, Null> x2, S3<Null, Null, Null> x3}) =>
-    null;
+        {S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_A05.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_A05.dart
index 1241d48..baf1089 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_A05.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_A05.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -43,22 +43,25 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A11.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A11.dart
index 27e134b..639af18 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A11.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A11.dart
@@ -20,7 +20,7 @@
  * then T0 is not a subtype of T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -33,13 +33,16 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 y3}); // y3 is not x3
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? y3}); // y3 is not x3
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 y3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? y3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A12.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A12.dart
index 491b113..968e8f1 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A12.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A12.dart
@@ -20,7 +20,7 @@
  * then T0 is not a subtype of T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -42,14 +42,17 @@
 class Y0 extends B0 {}
 class Y1 extends B1 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}); // x2...x5 is not subset of x2...x4
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}); // x2...x5 is not subset of x2...x4
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2 x2, S3 x3, S4 x4, V4 x5}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B1>(S0 y0, S1 y1, {S2? x2, S3? x3, S4? x4, V4? x5}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A21.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A21.dart
index 0f12bde..488500a 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A21.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A21.dart
@@ -21,7 +21,7 @@
  * a subtype of T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -34,14 +34,17 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S1 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S1 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
\ No newline at end of file
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A22.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A22.dart
index bc3120e..d21151f 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A22.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A22.dart
@@ -21,7 +21,7 @@
  * a subtype of T1. Test generic types
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -62,22 +62,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // S0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A23.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A23.dart
index 0455996..50a4510 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A23.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A23.dart
@@ -21,7 +21,7 @@
  * a subtype of T1. Test generic types
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -44,22 +44,25 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, double> x0, V1<A, List, num> x1,     // V0<C, List<String>, int> is not subtype of V0<A, List, double>
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, double> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
\ No newline at end of file
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A31.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A31.dart
index 2b003a0..dde4ffb 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A31.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A31.dart
@@ -21,7 +21,7 @@
  * a subtype of T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -34,14 +34,17 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3}); // S2 is not subtype of V1
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3}); // S2 is not subtype of V1
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A32.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A32.dart
index 216ae74..9d1d367 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A32.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A32.dart
@@ -21,7 +21,7 @@
  * a subtype of T1. Test generic types
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -62,22 +62,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // S2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A33.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A33.dart
index 20f03d6..4a3abb5 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A33.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A33.dart
@@ -21,7 +21,7 @@
  * a subtype of T1. Test generic types
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -44,22 +44,25 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
+    {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}); // V2<C, List<String>, int> is not a subtype of V2<A, List, double>
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, double> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, double>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A41.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A41.dart
index 31e8b7e..b83208a 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A41.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A41.dart
@@ -20,7 +20,7 @@
  * U1[Z0/Y0, ..., Zk/Yk], then T0 is not a subtype of T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -33,14 +33,16 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function(S0 y0, S1 y1, {S2 x2, S3 x3});
+typedef T0 = U0 Function(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function(S0 y0, S1 y1, {S2? x2, S3? x3});
 
-U0 t0Func(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
 
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A42.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A42.dart
index ad6c9eb..2439050 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A42.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A42.dart
@@ -20,7 +20,7 @@
  * U1[Z0/Y0, ..., Zk/Yk], then T0 is not a subtype of T1. Test generic types
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,22 +59,25 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A43.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A43.dart
index c56c246..28c5234 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A43.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A43.dart
@@ -20,7 +20,7 @@
  * U1[Z0/Y0, ..., Zk/Yk], then T0 is not a subtype of T1. Test generic types
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -43,22 +43,25 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>( // U<C, List<String>, int> is not subtype of U<A, List, double>
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, double> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, double> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, double>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A51.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A51.dart
index 1fc3118..a3359b7 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A51.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A51.dart
@@ -20,7 +20,7 @@
  * for any i in 0...k, then T0 is not a subtype of T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class B0 {}
@@ -40,14 +40,17 @@
 
 class Y0 extends B0 {}
 
-typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4});
-typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}); //  Y extends B0, not B1
+typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4});
+typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2 x2, V3 x3, V4 x4}) => null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2 x2, S3 x3}) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, {V2? x2, V3? x3, V4? x4}) => new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, {S2? x2, S3? x3}) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A52.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A52.dart
index db2f36e..c7aef99 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A52.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A52.dart
@@ -20,7 +20,7 @@
  * for any i in 0...k, then T0 is not a subtype of T1. Test generic types
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,22 +59,25 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, int> Function<X extends B0, Y extends B0>(  //Y extends B0, not B1
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3});
+    {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, int> t1Func<X extends B0, Y extends B0>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        {S2<C, List<String>, int> x2, S3<C, List<String>, int> x3}) =>
-    null;
+        {S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3}) =>
+    new U<A, List, int>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A53.dart b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A53.dart
index 915f741..2735f7c 100644
--- a/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A53.dart
+++ b/LanguageFeatures/Subtyping/test_types/named_function_types_fail_A53.dart
@@ -20,7 +20,7 @@
  * for any i in 0...k, then T0 is not a subtype of T1. Test generic types
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -43,22 +43,25 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4});
+    {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4});
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B0>( // Y extends B0, not B1
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3});
+    {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3});
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        {V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4}) =>
-    null;
+        {V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4}) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B0>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        {V2<C, List<String>, int> x2, V3<C, List<String>, int> x3}) =>
-    null;
+        {V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3}) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A01.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A01.dart
index c3fc0e8..b55ee96 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A01.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test the case when p == n and m == q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -32,13 +32,16 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A02.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A02.dart
index 5a1ac68..798a907 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A02.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A02.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test the case when p > n and m > q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -33,13 +33,16 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A03.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A03.dart
index 55999d8..a7786b0 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A03.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A03.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test the case when p == n and m > q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -33,13 +33,16 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A04.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A04.dart
index f491862..dc776b4 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A04.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A04.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test the case when p > n and m == q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -34,13 +34,16 @@
 class S3 extends V3 {}
 class S4 extends V4 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+
+const t1Default = t1Func;
+
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A11.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A11.dart
index 6aaf9c0..6359b89 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A11.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A11.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types and the case when p == n and m == q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -59,23 +59,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A12.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A12.dart
index ba6935e..61a0389 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A12.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A12.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types and the case when p > n and m > q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -61,23 +61,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A13.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A13.dart
index 0438cff..76f3675 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A13.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A13.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types and the case when p == n and m > q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -61,23 +61,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num> x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A14.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A14.dart
index 97792c6..61eed6e 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A14.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A14.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types and the case when p > n and m == q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -61,23 +61,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]);
+    S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, [S3<C, List<String>, int> y3]) =>
-    null;
+        S2<C, List<String>, int> y2, [S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A21.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A21.dart
index e72ddff..4e79144 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A21.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A21.dart
@@ -21,7 +21,7 @@
  * p == n and m == q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -62,22 +62,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-    [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]);
+    [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<dynamic, void, Object> x0, V1<dynamic, void, Object> x1,
-        [V2<dynamic, void, Object> x2, V3<dynamic, void, Object> x3]) => null;
+        [V2<dynamic, void, Object>? x2, V3<dynamic, void, Object>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+        [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A22.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A22.dart
index c662df6..fa32aa8 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A22.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A22.dart
@@ -21,7 +21,7 @@
  * p > n and m > q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -64,23 +64,26 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void> ?x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) =>
+    new U1<dynamic, void, Object>();
+
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A23.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A23.dart
index 852bc40..d6b24dc 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A23.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A23.dart
@@ -21,7 +21,7 @@
  * p = n and m > q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -64,23 +64,25 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]);
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3, V4<dynamic,
-    void, Object> x4]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3, V4<dynamic,
+    void, Object>? x4]) => new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> x2, S3<C, List<String>, int> x3]) => null;
+    [S2<C, List<String>, int>? x2, S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A24.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A24.dart
index 7d9980c..3963cb1 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A24.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A24.dart
@@ -21,7 +21,7 @@
  * p > n and m = q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -64,21 +64,24 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object, dynamic, void> x2, V3<dynamic, Object, void> x3]);
+    [V2<Object, dynamic, void>? x2, V3<dynamic, Object, void>? x3]);
 
 typedef T1 = U1<dynamic, void, Object> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]);
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<dynamic, void, Object> x0, V1<void, Object, dynamic> x1,
-    [V2<Object,dynamic, void> x2, V3<dynamic, Object, void> x3]) => null;
+    [V2<Object,dynamic, void>? x2, V3<dynamic, Object, void>? x3]) =>
+    new U0<C, List<String>, int>();
 
 U1<dynamic, void, Object> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> x2, [S3<C, List<String>, int> x3]) => null;
+    S2<C, List<String>, int> x2, [S3<C, List<String>, int>? x3]) =>
+    new U1<dynamic, void, Object>();
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A31.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A31.dart
index 7f613ba..e0e0912 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A31.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A31.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types with Null type when p == n and m == q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -61,22 +61,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
     null;
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A32.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A32.dart
index f4ee162..65bc765 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A32.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A32.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types with Null type when p > n and m > q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -60,23 +60,24 @@
 class Y1<X, Y, Z> extends B1<X, Y, Z> {}
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
-typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]);
+typedef T1 = U1<A?, List?, num?> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
-U1<A, List, num> t1Func<X extends B0, Y extends B1>(
+    V0<A?, List?, num?> x0, V1<A?, List?, num?> x1,
+    [V2<A?, List?, num?>? x2, V3<A?, List?, num?>? x3, V4<A?, List?, num?>? x4]) =>
+    new U0<Null, Null, Null>();
+U1<A?, List?, num?> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A?, List?, num?>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A33.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A33.dart
index 79c18e3..c22cc72 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A33.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A33.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types with Null type when p = n and m > q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -61,22 +61,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]);
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    [S2<Null, Null, Null> x2, S3<Null, Null, Null> x3]) =>
-    null;
+    [S2<Null, Null, Null>? x2, S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A34.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A34.dart
index e3ac14f..04a0faf 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A34.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A34.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types with Null type when p > n and m = q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -61,22 +61,23 @@
 
 typedef T0 = U0<Null, Null, Null> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]);
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]);
 
 U0<Null, Null, Null> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<Null, Null, Null>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<Null, Null, Null> y0, S1<Null, Null, Null> y1,
-    S2<Null, Null, Null> x2, [S3<Null, Null, Null> x3]) =>
-    null;
+    S2<Null, Null, Null> x2, [S3<Null, Null, Null>? x3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A41.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A41.dart
index 5aa742b..4101025 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A41.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A41.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types when p == n and m == q
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -43,22 +43,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A42.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A42.dart
index 3e74ae8..67bc759 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A42.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A42.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types when p > n and m > q
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -43,22 +43,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A43.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A43.dart
index c113da0..d876d86 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A43.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A43.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types when p == n and m > q.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -43,22 +43,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]);
+    [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3, V4<A, List, num> x4]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3, V4<A, List, num>? x4]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        [V2<C, List<String>, int> x2, V3<C, List<String>, int> x3]) =>
-    null;
+        [V2<C, List<String>, int>? x2, V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_A44.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_A44.dart
index e208717..fad8c6b 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_A44.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_A44.dart
@@ -20,7 +20,7 @@
  * subtype of T1. Test generic types hen p > n and m == q
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -43,22 +43,23 @@
 
 typedef T0 = U<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U<A, List, num> Function<X extends B0, Y extends B1>(
     V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-    V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]);
+    V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]);
 
 U<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U<C, List<String>, int>();
 U<A, List, num> t1Func<X extends B0, Y extends B1>(
         V0<C, List<String>, int> y0, V1<C, List<String>, int> y1,
-        V2<C, List<String>, int> x2, [V3<C, List<String>, int> x3]) =>
-    null;
+        V2<C, List<String>, int> x2, [V3<C, List<String>, int>? x3]) =>
+    new U<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A01.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A01.dart
index bab7c95..7a0762e 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A01.dart
@@ -19,7 +19,7 @@
  * @description Check that if p < n and m == q then T0 is not a subtype of T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -31,13 +31,14 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A02.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A02.dart
index 7c28720..eb715b1 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A02.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A02.dart
@@ -19,7 +19,7 @@
  * @description Check that if p < n and m > q then T0 is not a subtype of T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -32,13 +32,14 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]);
-typedef T1 = U1 Function(S0 y0, [S1 y1, S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]);
+typedef T1 = U1 Function(S0 y0, [S1? y1, S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) => null;
-U1 t1Func(S0 y0, [S1 y1, S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) => new U0();
+U1 t1Func(S0 y0, [S1? y1, S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A03.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A03.dart
index dfcb087..d8b75cd 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A03.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A03.dart
@@ -19,7 +19,7 @@
  * @description Check that if p == n and m < q then T0 is not a subtype of T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -31,13 +31,14 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A04.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A04.dart
index 4ec357d..4a78a1d 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A04.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A04.dart
@@ -19,7 +19,7 @@
  * @description Check that if p > n and m < q then T0 is not a subtype of T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -31,13 +31,14 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2]);
-typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2]);
+typedef T1 = U1 Function(S0 y0, S1 y1, S2 y2, [S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2]) => null;
-U1 t1Func(S0 y0, S1 y1, S2 y2, [S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2]) => new U0();
+U1 t1Func(S0 y0, S1 y1, S2 y2, [S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A05.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A05.dart
index 7f39339..4e69002 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A05.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A05.dart
@@ -22,7 +22,7 @@
  * @author sgrekhov@unipro.ru
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -53,23 +53,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
     null;
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A06.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A06.dart
index be49fca..cb21b5c 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A06.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A06.dart
@@ -22,7 +22,7 @@
  * @author sgrekhov@unipro.ru
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -53,23 +53,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
-    S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-    S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+    S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+        [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
-        S0<C, List<String>, int> y0, [S1<C, List<String>, int> y1,
-        S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        S0<C, List<String>, int> y0, [S1<C, List<String>, int>? y1,
+        S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A07.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A07.dart
index f507b2d..6e3e42f 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A07.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A07.dart
@@ -22,7 +22,7 @@
  * @author sgrekhov@unipro.ru
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -53,23 +53,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2]);
+    [V2<A, List, num>? x2]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
         V0<A, List, num> x0, V1<A, List, num> x1,
-        [V2<A, List, num> x2]) =>
-    null;
+        [V2<A, List, num>? x2]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A08.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A08.dart
index 1c9774a..3420293 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A08.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A08.dart
@@ -22,7 +22,7 @@
  * @author sgrekhov@unipro.ru
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -52,22 +52,22 @@
 class S3<X, Y, Z> extends V3<X, Y, Z> {}
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
-    V0<A, List, num> x0, [V1<A, List, num> x1]);
+    V0<A, List, num> x0, [V1<A, List, num>? x1]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
-        V0<A, List, num> x0,[ V1<A, List, num> x1]) =>
-    null;
+        V0<A, List, num> x0,[V1<A, List, num>? x1]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
         S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-        [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+        [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A11.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A11.dart
index d274a17..9c96ec1 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A11.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A11.dart
@@ -22,7 +22,7 @@
  * @author sgrekhov@unipro.ru
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 class U1 {}
 class V0 {}
@@ -34,13 +34,14 @@
 class S2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A12.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A12.dart
index e885c88..4c2de4a 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A12.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A12.dart
@@ -23,7 +23,7 @@
  * @author sgrekhov@unipro.ru
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -54,23 +54,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A21.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A21.dart
index 0117a53..24ec4c9 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A21.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A21.dart
@@ -22,7 +22,7 @@
  * @author sgrekhov@unipro.ru
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 {} // U0 is not subtype of U1
 class U1 {}
 class V0 {}
@@ -34,13 +34,14 @@
 class S2 extends V2 {}
 class S3 extends V3 {}
 
-typedef T0 = U0 Function(V0 x0, V1 x1, [V2 x2, V3 x3]);
-typedef T1 = U1 Function(S0 y0, S1 y1, [S2 y2, S3 y3]);
+typedef T0 = U0 Function(V0 x0, V1 x1, [V2? x2, V3? x3]);
+typedef T1 = U1 Function(S0 y0, S1 y1, [S2? y2, S3? y3]);
 
-U0 t0Func(V0 x0, V1 x1, [V2 x2, V3 x3]) => null;
-U1 t1Func(S0 y0, S1 y1, [S2 y2, S3 y3]) => null;
+U0 t0Func(V0 x0, V1 x1, [V2? x2, V3? x3]) => new U0();
+U1 t1Func(S0 y0, S1 y1, [S2? y2, S3? y3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A22.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A22.dart
index 9faf592..9b2decc 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A22.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A22.dart
@@ -22,7 +22,7 @@
  * @author sgrekhov@unipro.ru
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -53,23 +53,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B1>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A31.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A31.dart
index e2c90ae..7830ccb 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A31.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A31.dart
@@ -22,7 +22,7 @@
  * @author sgrekhov@unipro.ru
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class U0 extends U1 {}
 
 class U1 {}
@@ -50,16 +50,17 @@
 class S3 extends V3 {}
 
 typedef T0 = U0 Function<X extends B0, Y extends B1>(V0 x0, V1 x1,
-    [V2 x2, V3 x3, V4 x4]);
+    [V2? x2, V3? x3, V4? x4]);
 typedef T1 = U1 Function<X extends B0, Y extends B0>(S0 y0, S1 y1,
-    [S2 x2, S3 x3]); //  Y extends B0, not B1
+    [S2? x2, S3? x3]); //  Y extends B0, not B1
 
-U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2 x2, V3 x3, V4 x4]) =>
-    null;
-U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2 x2, S3 x3]) => null;
+U0 t0Func<X extends B0, Y extends B1>(V0 x0, V1 x1, [V2? x2, V3? x3, V4? x4]) =>
+    new U0();
+U1 t1Func<X extends B0, Y extends B0>(S0 y0, S1 y1, [S2? x2, S3? x3]) => new U1();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A32.dart b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A32.dart
index 2e35e79..0a17cc7 100644
--- a/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A32.dart
+++ b/LanguageFeatures/Subtyping/test_types/positional_function_types_fail_A32.dart
@@ -23,7 +23,7 @@
  * @author sgrekhov@unipro.ru
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class A {}
 
 class C extends A {}
@@ -54,23 +54,23 @@
 
 typedef T0 = U0<C, List<String>, int> Function<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]);
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]);
 typedef T1 = U1<A, List, num> Function<X extends B0, Y extends B0>(
-    S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]);
+    S0<C, List<String>, int>? y0, S1<C, List<String>, int>? y1,
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]);
 
 U0<C, List<String>, int> t0Func<X extends B0, Y extends B1>(
     V0<A, List, num> x0, V1<A, List, num> x1,
-    [V2<A, List, num> x2, V3<A, List, num> x3]) =>
-    null;
+    [V2<A, List, num>? x2, V3<A, List, num>? x3]) =>
+    new U0<C, List<String>, int>();
 U1<A, List, num> t1Func<X extends B0, Y extends B0>(
     S0<C, List<String>, int> y0, S1<C, List<String>, int> y1,
-    [S2<C, List<String>, int> y2, S3<C, List<String>, int> y3]) =>
-    null;
+    [S2<C, List<String>, int>? y2, S3<C, List<String>, int>? y3]) =>
+    new U1<A, List, num>();
 
 T0 t0Instance = t0Func;
 T1 t1Instance = t1Func;
-bool isGenericFunctionType = true;
+const t1Default = t1Func;
 //# @T0 = T0
 //# @T1 = T1
 //# @GenericFunctionType
diff --git a/LanguageFeatures/Subtyping/test_types/reflexivity_A01.dart b/LanguageFeatures/Subtyping/test_types/reflexivity_A01.dart
index 33670b9..011b287 100644
--- a/LanguageFeatures/Subtyping/test_types/reflexivity_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/reflexivity_A01.dart
@@ -11,11 +11,15 @@
  * subtype of a type T1
  * @author sgrekhov@unipro.ru
  */
-
-class T {}
+// SharedOptions=--enable-experiment=non-nullable
+class T {
+  const T();
+}
 
 T t0Instance = new T();
 T t1Instance = new T();
 
+const t1Default = const T();
+
 //# @T0 = T
 //# @T1 = T
diff --git a/LanguageFeatures/Subtyping/test_types/reflexivity_A02.dart b/LanguageFeatures/Subtyping/test_types/reflexivity_A02.dart
index 75fc1dc..8a36fb6 100644
--- a/LanguageFeatures/Subtyping/test_types/reflexivity_A02.dart
+++ b/LanguageFeatures/Subtyping/test_types/reflexivity_A02.dart
@@ -11,9 +11,11 @@
  * subtype of a type T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = 3.14;
 dynamic t1Instance = "";
 
+const t1Default = "";
+
 //# @T0 = dynamic
 //# @T1 = dynamic
diff --git a/LanguageFeatures/Subtyping/test_types/reflexivity_A03.dart b/LanguageFeatures/Subtyping/test_types/reflexivity_A03.dart
index 5f19881..dc54269 100644
--- a/LanguageFeatures/Subtyping/test_types/reflexivity_A03.dart
+++ b/LanguageFeatures/Subtyping/test_types/reflexivity_A03.dart
@@ -11,9 +11,11 @@
  * subtype of a type T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 //# @T0 = Object
 //# @T1 = Object
diff --git a/LanguageFeatures/Subtyping/test_types/reflexivity_A04.dart b/LanguageFeatures/Subtyping/test_types/reflexivity_A04.dart
index be53d13..bc3b1d4 100644
--- a/LanguageFeatures/Subtyping/test_types/reflexivity_A04.dart
+++ b/LanguageFeatures/Subtyping/test_types/reflexivity_A04.dart
@@ -11,9 +11,11 @@
  * of a type T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 Null t0Instance = null;
 Null t1Instance = null;
 
+const t1Default = null;
+
 //# @T0 = Null
 //# @T1 = Null
diff --git a/LanguageFeatures/Subtyping/test_types/right_FutureOr_A01.dart b/LanguageFeatures/Subtyping/test_types/right_FutureOr_A01.dart
index b9c30ce..ad5e2b0 100644
--- a/LanguageFeatures/Subtyping/test_types/right_FutureOr_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_FutureOr_A01.dart
@@ -15,10 +15,12 @@
  * subtype of a type Future<S1>, then a type T0 is a subtype of a type T1.
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -30,5 +32,7 @@
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 //# @T0 = T0
 //# @T1 = FutureOr<S1>
diff --git a/LanguageFeatures/Subtyping/test_types/right_FutureOr_A02.dart b/LanguageFeatures/Subtyping/test_types/right_FutureOr_A02.dart
index aa34aed..c0461ce 100644
--- a/LanguageFeatures/Subtyping/test_types/right_FutureOr_A02.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_FutureOr_A02.dart
@@ -15,14 +15,18 @@
  * subtype of a type S1, then a type T0 is a subtype of a type T1.
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 extends S1 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 //# @T0 = T0
 //# @T1 = FutureOr<S1>
diff --git a/LanguageFeatures/Subtyping/test_types/right_FutureOr_A03.dart b/LanguageFeatures/Subtyping/test_types/right_FutureOr_A03.dart
index e6d072a..e523d2c 100644
--- a/LanguageFeatures/Subtyping/test_types/right_FutureOr_A03.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_FutureOr_A03.dart
@@ -15,10 +15,12 @@
  * has bound S0 and S0 <: Future<S1>, then a type T0 is a subtype of a type T1.
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 implements Future<S1> {
   asStream() => null;
   catchError(Function onError, {bool test(Object error)}) => null;
@@ -32,5 +34,7 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 //# @T0 = X0
 //# @T1 = FutureOr<S1>
diff --git a/LanguageFeatures/Subtyping/test_types/right_FutureOr_A04.dart b/LanguageFeatures/Subtyping/test_types/right_FutureOr_A04.dart
index 8dd44fc..0597e48 100644
--- a/LanguageFeatures/Subtyping/test_types/right_FutureOr_A04.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_FutureOr_A04.dart
@@ -15,9 +15,12 @@
  * bound S0 and S0 <: S1, then a type T0 is a subtype of a type T1.
  * @author ngl@unipro.ru
  */
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 extends S1 {
 }
 class X0 extends S0 {
@@ -26,5 +29,7 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new S1();
 
+const t1Default = const S1();
+
 //# @T0 = X0
 //# @T1 = FutureOr<S1>
diff --git a/LanguageFeatures/Subtyping/test_types/right_FutureOr_fail_A01.dart b/LanguageFeatures/Subtyping/test_types/right_FutureOr_fail_A01.dart
index 48f8043..9d5adb3 100644
--- a/LanguageFeatures/Subtyping/test_types/right_FutureOr_fail_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_FutureOr_fail_A01.dart
@@ -16,14 +16,18 @@
  * type T1.
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class T0 {}
 
 T0 t0Instance = new T0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 //# @T0 = T0
 //# @T1 = FutureOr<S1>
diff --git a/LanguageFeatures/Subtyping/test_types/right_FutureOr_fail_A02.dart b/LanguageFeatures/Subtyping/test_types/right_FutureOr_fail_A02.dart
index 2471a8c..9588682 100644
--- a/LanguageFeatures/Subtyping/test_types/right_FutureOr_fail_A02.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_FutureOr_fail_A02.dart
@@ -16,10 +16,12 @@
  * is not a subtype of a type T1.
  * @author ngl@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
 
-class S1 {}
+class S1 {
+  const S1();
+}
 class S0 {}
 class X0 extends S0 {
 }
@@ -27,5 +29,7 @@
 X0 t0Instance = new X0();
 FutureOr<S1> t1Instance = new Future.value(new S1());
 
+const t1Default = const S1();
+
 //# @T0 = X0
 //# @T1 = FutureOr<S1>
diff --git a/LanguageFeatures/Subtyping/test_types/right_object_A04.dart b/LanguageFeatures/Subtyping/test_types/right_object_A04.dart
index 3ff1eaf..69b73ac 100644
--- a/LanguageFeatures/Subtyping/test_types/right_object_A04.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_object_A04.dart
@@ -27,5 +27,7 @@
 FutureOr<S> t0Instance = new Future.value(new S());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 //# @T0 = FutureOr<S>
 //# @T1 = Object
diff --git a/LanguageFeatures/Subtyping/test_types/right_object_A05.dart b/LanguageFeatures/Subtyping/test_types/right_object_A05.dart
index e51d9d8..ea56006 100644
--- a/LanguageFeatures/Subtyping/test_types/right_object_A05.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_object_A05.dart
@@ -27,5 +27,7 @@
 FutureOr<S> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 //# @T0 = FutureOr<S>
 //# @T1 = Object
diff --git a/LanguageFeatures/Subtyping/test_types/right_object_fail_A04.dart b/LanguageFeatures/Subtyping/test_types/right_object_fail_A04.dart
index 4ff7667..626a0e9 100644
--- a/LanguageFeatures/Subtyping/test_types/right_object_fail_A04.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_object_fail_A04.dart
@@ -27,5 +27,7 @@
 FutureOr<S?> t0Instance = new S();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 //# @T0 = FutureOr<S?>
 //# @T1 = Object
diff --git a/LanguageFeatures/Subtyping/test_types/right_object_fail_A05.dart b/LanguageFeatures/Subtyping/test_types/right_object_fail_A05.dart
index e046efc..2c4e0a4 100644
--- a/LanguageFeatures/Subtyping/test_types/right_object_fail_A05.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_object_fail_A05.dart
@@ -21,10 +21,12 @@
  */
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new X();
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 //# @T0 = FutureOr<X>
 //# @T1 = Object
diff --git a/LanguageFeatures/Subtyping/test_types/right_object_fail_A06.dart b/LanguageFeatures/Subtyping/test_types/right_object_fail_A06.dart
index 8a7e09e..475cf6b 100644
--- a/LanguageFeatures/Subtyping/test_types/right_object_fail_A06.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_object_fail_A06.dart
@@ -21,10 +21,12 @@
  */
 // SharedOptions=--enable-experiment=non-nullable
 import "dart:async";
-import "../utils/legacy_lib.dart";
+import "../../utils/legacy_lib.dart";
 
 FutureOr<X> t0Instance = new Future.value(new X());
 Object t1Instance = new Object();
 
+const t1Default = const Object();
+
 //# @T0 = FutureOr<X>
 //# @T1 = Object
diff --git a/LanguageFeatures/Subtyping/test_types/right_top_A01.dart b/LanguageFeatures/Subtyping/test_types/right_top_A01.dart
index c96c39d..3101902 100644
--- a/LanguageFeatures/Subtyping/test_types/right_top_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_top_A01.dart
@@ -17,5 +17,7 @@
 T0 t0Instance = new T0();
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 //# @T0 = T0
 //# @T1 = Object?
diff --git a/LanguageFeatures/Subtyping/test_types/right_top_A02.dart b/LanguageFeatures/Subtyping/test_types/right_top_A02.dart
index b5fe59a..d39453e 100644
--- a/LanguageFeatures/Subtyping/test_types/right_top_A02.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_top_A02.dart
@@ -11,11 +11,13 @@
  * type T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
 dynamic t1Instance = 3.14;
 
+const t1Default = null;
+
 //# @T0 = T0
 //# @T1 = dynamic
diff --git a/LanguageFeatures/Subtyping/test_types/right_top_A03.dart b/LanguageFeatures/Subtyping/test_types/right_top_A03.dart
index ab31e4d..01a675c 100644
--- a/LanguageFeatures/Subtyping/test_types/right_top_A03.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_top_A03.dart
@@ -15,5 +15,7 @@
 dynamic t0Instance = "";
 Object? t1Instance = new Object();
 
+const t1Default = null;
+
 //# @T0 = dynamic
 //# @T1 = Object?
diff --git a/LanguageFeatures/Subtyping/test_types/right_top_A04.dart b/LanguageFeatures/Subtyping/test_types/right_top_A04.dart
index ab8402c..cf35af3 100644
--- a/LanguageFeatures/Subtyping/test_types/right_top_A04.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_top_A04.dart
@@ -11,9 +11,11 @@
  * T0 is a subtype of a type T1.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 Object t0Instance = new Object();
 dynamic t1Instance = 2018;
 
+const t1Default = null;
+
 //# @T0 = Object
 //# @T1 = dynamic
diff --git a/LanguageFeatures/Subtyping/test_types/super_interface_A01.dart b/LanguageFeatures/Subtyping/test_types/super_interface_A01.dart
index 891a130..3eb79a2 100644
--- a/LanguageFeatures/Subtyping/test_types/super_interface_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/super_interface_A01.dart
@@ -12,8 +12,10 @@
  * S0,...Sn and and Si <: T1 for some i then T0 is a subtype of a type T1
  * @author sgrekhov@unipro.ru
  */
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 extends T1 {}
 abstract class S1 {}
@@ -26,5 +28,7 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/super_interface_A02.dart b/LanguageFeatures/Subtyping/test_types/super_interface_A02.dart
index 4c30b1f..26d0fe3 100644
--- a/LanguageFeatures/Subtyping/test_types/super_interface_A02.dart
+++ b/LanguageFeatures/Subtyping/test_types/super_interface_A02.dart
@@ -13,8 +13,10 @@
  * the case when S1 extends T1
  * @author sgrekhov@unipro.ru
  */
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 extends T1 {}
@@ -27,5 +29,7 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/super_interface_A03.dart b/LanguageFeatures/Subtyping/test_types/super_interface_A03.dart
index 6efff1e..082fa23 100644
--- a/LanguageFeatures/Subtyping/test_types/super_interface_A03.dart
+++ b/LanguageFeatures/Subtyping/test_types/super_interface_A03.dart
@@ -13,8 +13,10 @@
  * the case when Si is not direct child of T1
  * @author sgrekhov@unipro.ru
  */
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 abstract class S0 {}
 abstract class S1 {}
@@ -29,5 +31,7 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 //# @T0 = T0
 //# @T1 = T1
diff --git a/LanguageFeatures/Subtyping/test_types/super_interface_fail_A01.dart b/LanguageFeatures/Subtyping/test_types/super_interface_fail_A01.dart
index 4d40fd6..e6904a3 100644
--- a/LanguageFeatures/Subtyping/test_types/super_interface_fail_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/super_interface_fail_A01.dart
@@ -12,8 +12,10 @@
  * subtype of T1
  * @author sgrekhov@unipro.ru
  */
-
-class T1 {}
+// SharedOptions=--enable-experiment=non-nullable
+class T1 {
+  const T1();
+}
 
 // Missing subtype relation to T1
 abstract class S0 {}
@@ -27,5 +29,7 @@
 T0 t0Instance = new T();
 T1 t1Instance = new T1();
 
+const t1Default = const T1();
+
 //# @T0 = T0
 //# @T1 = T1