#466. Subtyping tests changed according to NNBD spec
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A01_t01.dart
similarity index 97%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A01_t01.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A01_t01.dart
index 5a2978c..e71ac5e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A01_t01.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A01_t02.dart
similarity index 97%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A01_t02.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A01_t02.dart
index 2abade1..a5fb55e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A01_t02.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A01_t03.dart
similarity index 96%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A01_t03.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A01_t03.dart
index 61a0854..690cbfe 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A01_t03.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A02_t01.dart
similarity index 97%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t01.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A02_t01.dart
index a81272e..8543ed1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A02_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A02_t02.dart
similarity index 97%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t02.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A02_t02.dart
index ff3ac5a..6c3af2b 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A02_t02.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A02_t03.dart
similarity index 96%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t03.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A02_t03.dart
index 1855272..3f41e87 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_arguments_binding_A02_t03.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t01.dart
similarity index 96%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A01_t01.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t01.dart
index 14bdca2..16ec846 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t01.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t02.dart
similarity index 95%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A01_t02.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t02.dart
index a100691..0e1b615 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t02.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t03.dart
similarity index 93%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A01_t03.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t03.dart
index 48468aa..48037eb 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A01_t03.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t01.dart
similarity index 96%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t01.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t01.dart
index 72a1c08..295c6fc 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t02.dart
similarity index 95%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t02.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t02.dart
index fab2fd9..9a010d4 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t02.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t03.dart
similarity index 93%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t03.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t03.dart
index 6dad91a..6be23d3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_class_member_A02_t03.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_global_variable_A01_t01.dart
similarity index 92%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_global_variable_A01_t01.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_global_variable_A01_t01.dart
index 4f08085..c574a43 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_global_variable_A01_t01.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_global_variable_A02_t01.dart
similarity index 92%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_global_variable_A02_t01.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_global_variable_A02_t01.dart
index 91bafe0..be0d015 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_global_variable_A02_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_local_variable_A01_t01.dart
similarity index 92%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_local_variable_A01_t01.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_local_variable_A01_t01.dart
index c889e72..469365e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_local_variable_A01_t01.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_local_variable_A02_t01.dart
similarity index 92%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_local_variable_A02_t01.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_local_variable_A02_t01.dart
index 1f27446..9f505a5 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_local_variable_A02_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_return_value_A01_t01.dart
similarity index 93%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_return_value_A01_t01.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_return_value_A01_t01.dart
index 9b4cd37..fa2cb92 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_return_value_A01_t01.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_null_return_value_A02_t01.dart
similarity index 93%
rename from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_return_value_A02_t01.dart
rename to LanguageFeatures/Subtyping/dynamic/generated/left_null_return_value_A02_t01.dart
index 0e9a954..102653f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_null_return_value_A02_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t01.dart
similarity index 69%
copy from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t01.dart
copy to LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t01.dart
index a81272e..9b564d3 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
@@ -25,41 +25,42 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
 
-namedArgumentsFunc1(dynamic t1, {dynamic t2}) {}
-positionalArgumentsFunc1(dynamic t1, [dynamic t2]) {}
+namedArgumentsFunc1(Object? t1, {Object? t2}) {}
+positionalArgumentsFunc1(Object? t1, [Object? t2]) {}
 
 namedArgumentsFunc2<X>(X t1, {X t2}) {}
 positionalArgumentsFunc2<X>(X t1, [X t2]) {}
 
 class ArgumentsBindingClass {
-  ArgumentsBindingClass(dynamic t1) {}
+  ArgumentsBindingClass(Object? t1) {}
 
-  ArgumentsBindingClass.named(dynamic t1, {dynamic t2}) {}
-  ArgumentsBindingClass.positional(dynamic t1, [dynamic t2]) {}
+  ArgumentsBindingClass.named(Object? t1, {Object? t2}) {}
+  ArgumentsBindingClass.positional(Object? t1, [Object? t2]) {}
 
-  factory ArgumentsBindingClass.fNamed(dynamic t1, {dynamic t2}) {
+  factory ArgumentsBindingClass.fNamed(Object? t1, {Object? t2}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(dynamic t1, [dynamic t2]) {
+  factory ArgumentsBindingClass.fPositional(Object? t1, [Object? t2]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(dynamic t1, {dynamic t2}) {}
-  static positionalArgumentsStaticMethod(dynamic t1, [dynamic t2]) {}
+  static namedArgumentsStaticMethod(Object? t1, {Object? t2}) {}
+  static positionalArgumentsStaticMethod(Object? t1, [Object? t2]) {}
 
-  namedArgumentsMethod(dynamic t1, {dynamic t2}) {}
-  positionalArgumentsMethod(dynamic t1, [dynamic t2]) {}
+  namedArgumentsMethod(Object? t1, {Object? t2}) {}
+  positionalArgumentsMethod(Object? t1, [Object? t2]) {}
 
-  set testSetter(dynamic val) {}
+  set testSetter(Object? val) {}
 }
 
 class ArgumentsBindingGen<X>  {
@@ -115,19 +116,19 @@
 
   //# <-- NotGenericFunctionType
   // test generic functions
-  namedArgumentsFunc2<dynamic>(forgetType(t0Instance), t2: forgetType(t0Instance));
-  positionalArgumentsFunc2<dynamic>(forgetType(t0Instance), forgetType(t0Instance));
+  namedArgumentsFunc2<Object?>(forgetType(t0Instance), t2: forgetType(t0Instance));
+  positionalArgumentsFunc2<Object?>(forgetType(t0Instance), forgetType(t0Instance));
 
   // test generic class constructors
-  ArgumentsBindingGen<dynamic> instance2 =
-      new ArgumentsBindingGen<dynamic>(forgetType(t0Instance));
-  instance2 = new ArgumentsBindingGen<dynamic>.fNamed(forgetType(t0Instance),
+  ArgumentsBindingGen<Object?> instance2 =
+      new ArgumentsBindingGen<Object?>(forgetType(t0Instance));
+  instance2 = new ArgumentsBindingGen<Object?>.fNamed(forgetType(t0Instance),
       t2: forgetType(t0Instance));
-  instance2 = new ArgumentsBindingGen<dynamic>.fPositional(forgetType(t0Instance),
+  instance2 = new ArgumentsBindingGen<Object?>.fPositional(forgetType(t0Instance),
       forgetType(t0Instance));
-  instance2 = new ArgumentsBindingGen<dynamic>.named(forgetType(t0Instance),
+  instance2 = new ArgumentsBindingGen<Object?>.named(forgetType(t0Instance),
       t2: forgetType(t0Instance));
-  instance2 = new ArgumentsBindingGen<dynamic>.positional(forgetType(t0Instance),
+  instance2 = new ArgumentsBindingGen<Object?>.positional(forgetType(t0Instance),
       forgetType(t0Instance));
 
   // test generic class methods and setters
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t02.dart
similarity index 76%
copy from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t02.dart
copy to LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t02.dart
index ff3ac5a..3b5151e 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t02.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
@@ -25,28 +25,29 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
 
 class ArgumentsBindingSuper1_t02 {
-  dynamic m;
+  Object? m;
 
-  ArgumentsBindingSuper1_t02(dynamic value) {}
-  ArgumentsBindingSuper1_t02.named(dynamic value, {dynamic val2}) {}
-  ArgumentsBindingSuper1_t02.positional(dynamic value, [dynamic val2]) {}
+  ArgumentsBindingSuper1_t02(Object? value) {}
+  ArgumentsBindingSuper1_t02.named(Object? value, {Object? val2}) {}
+  ArgumentsBindingSuper1_t02.positional(Object? value, [Object? val2]) {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
-  void superTest(dynamic val) {}
-  void superTestPositioned(dynamic val, [dynamic val2]) {}
-  void superTestNamed(dynamic val, {dynamic val2}) {}
-  dynamic get superGetter => m;
-  void set superSetter(dynamic val) {}
+  void superTest(Object? val) {}
+  void superTestPositioned(Object? val, [Object? val2]) {}
+  void superTestNamed(Object? val, {Object? val2}) {}
+  Object? get superGetter => m;
+  void set superSetter(Object? val) {}
 }
 
 class ArgumentsBinding1_t02 extends ArgumentsBindingSuper1_t02 {
@@ -124,13 +125,13 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ArgumentsBinding2_t02<dynamic> c2 =
-    new ArgumentsBinding2_t02<dynamic>(forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<dynamic>.c1(forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<dynamic>.c2(t1Instance, forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<dynamic>.c3(forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<dynamic>.c4(t1Instance, forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<dynamic>.c5(forgetType(t0Instance));
+  ArgumentsBinding2_t02<Object?> c2 =
+    new ArgumentsBinding2_t02<Object?>(forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c1(forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c2(t1Instance, forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c3(forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c4(t1Instance, forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c5(forgetType(t0Instance));
 
   c2.test(forgetType(t0Instance), t1Instance);
   c2.superTest(forgetType(t0Instance));
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t03.dart
similarity index 79%
copy from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t03.dart
copy to LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t03.dart
index 1855272..8fdd27f 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_arguments_binding_A01_t03.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
@@ -25,23 +25,24 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  dynamic m;
+  Object? m;
 
-  void superTest(dynamic val) {}
-  void superTestPositioned(dynamic val, [dynamic val2]) {}
-  void superTestNamed(dynamic val, {dynamic val2}) {}
-  dynamic get superGetter => m;
-  void set superSetter(dynamic val) {}
+  void superTest(Object? val) {}
+  void superTestPositioned(Object? val, [Object? val2]) {}
+  void superTestNamed(Object? val, {Object? val2}) {}
+  Object? get superGetter => m;
+  void set superSetter(Object? val) {}
 }
 
 class ArgumentsBinding1_t03 extends Object with ArgumentsBindingMixin1_t03 {
@@ -97,7 +98,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ArgumentsBinding2_t03<dynamic> c2 = new ArgumentsBinding2_t03<dynamic>();
+  ArgumentsBinding2_t03<Object?> c2 = new ArgumentsBinding2_t03<Object?>();
   c2.test(forgetType(t0Instance), t1Instance);
   c2.superTest(forgetType(t0Instance));
   c2.superTestPositioned(forgetType(t0Instance));
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t01.dart
similarity index 70%
copy from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t01.dart
copy to LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t01.dart
index 72a1c08..e7124f1 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
@@ -25,19 +25,20 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
 
 class ClassMember1_t01 {
-  static dynamic s = forgetType(t0Instance);
-  dynamic m = forgetType(t0Instance);
-  dynamic _p = forgetType(t0Instance);
+  static Object? s = forgetType(t0Instance);
+  Object? m = forgetType(t0Instance);
+  Object? _p = forgetType(t0Instance);
 
   ClassMember1_t01() {
     s = forgetType(t0Instance);
@@ -45,7 +46,7 @@
     _p = forgetType(t0Instance);
   }
 
-  ClassMember1_t01.named(dynamic value) {
+  ClassMember1_t01.named(Object? value) {
     s = value;
     m = value;
     _p = value;
@@ -59,21 +60,21 @@
     _p = forgetType(t0Instance);
   }
 
-  set setter(dynamic val) {
+  set setter(Object? val) {
     _p = val;
   }
 
-  dynamic get getter => forgetType(_p);
+  Object? get getter => forgetType(_p);
 
   static staticTest() {
     s = forgetType(t0Instance);
   }
 
-  static set staticSetter(dynamic val) {
+  static set staticSetter(Object? val) {
     s = val;
   }
 
-  static dynamic get staticGetter => forgetType(t0Instance);
+  static Object? get staticGetter => forgetType(t0Instance);
 }
 
 class ClassMember2_t01<X> {
@@ -101,7 +102,7 @@
     _p = val;
   }
 
-  dynamic get getter => forgetType(_p);
+  Object? get getter => forgetType(_p);
 }
 
 main() {
@@ -122,10 +123,10 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t01<dynamic> c2 = new ClassMember2_t01<dynamic>();
-  c2 = new ClassMember2_t01<dynamic>.short(forgetType(t0Instance),
+  ClassMember2_t01<Object?> c2 = new ClassMember2_t01<Object?>();
+  c2 = new ClassMember2_t01<Object?>.short(forgetType(t0Instance),
   forgetType(t0Instance));
-  c2 = new ClassMember2_t01<dynamic>.named(forgetType(t0Instance));
+  c2 = new ClassMember2_t01<Object?>.named(forgetType(t0Instance));
   c2.m = forgetType(t0Instance);
   c2.test(forgetType(t0Instance));
   c2.getter;
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t02.dart
similarity index 80%
copy from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t02.dart
copy to LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t02.dart
index fab2fd9..a17abdc 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t02.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
@@ -25,17 +25,18 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
 
 class ClassMemberSuper1_t02 {
-  dynamic m;
+  Object? m;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -47,7 +48,7 @@
 
   ClassMemberSuper1_t02.short(this.m);
 
-  void set superSetter(dynamic val) {}
+  void set superSetter(Object? val) {}
 }
 
 class ClassMember1_t02 extends ClassMemberSuper1_t02 {
@@ -105,9 +106,9 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t02<dynamic> c2 = new ClassMember2_t02<dynamic>();
-  c2 = new ClassMember2_t02<dynamic>.short();
-  c2 = new ClassMember2_t02<dynamic>.named();
+  ClassMember2_t02<Object?> c2 = new ClassMember2_t02<Object?>();
+  c2 = new ClassMember2_t02<Object?>.short();
+  c2 = new ClassMember2_t02<Object?>.named();
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t03.dart
similarity index 78%
copy from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t03.dart
copy to LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t03.dart
index 6dad91a..9de8731 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_class_member_A01_t03.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
@@ -25,17 +25,18 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
 
 class ClassMemberMixin1_t03 {
-  dynamic m;
+  Object? m;
 
   void set superSetter(dynamic val) {}
 }
@@ -68,7 +69,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<dynamic> c2 = new ClassMember2_t03<dynamic>();
+  ClassMember2_t03<Object?> c2 = new ClassMember2_t03<Object?>();
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_global_variable_A01_t01.dart
similarity index 77%
copy from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_global_variable_A02_t01.dart
copy to LanguageFeatures/Subtyping/dynamic/generated/left_top_global_variable_A01_t01.dart
index 91bafe0..daa5b45 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_global_variable_A01_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
@@ -25,11 +25,12 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_local_variable_A01_t01.dart
similarity index 67%
copy from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_local_variable_A02_t01.dart
copy to LanguageFeatures/Subtyping/dynamic/generated/left_top_local_variable_A01_t01.dart
index 1f27446..e82c2e7 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_local_variable_A01_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
@@ -25,11 +25,12 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
@@ -37,28 +38,28 @@
 class LocalVariableTest {
 
   LocalVariableTest() {
-    dynamic t1 = forgetType(t0Instance);
+    Object? t1 = forgetType(t0Instance);
     t1 = forgetType(t0Instance);
   }
 
   static staticTest() {
-    dynamic t1 = forgetType(t0Instance);
+    Object? t1 = forgetType(t0Instance);
     t1 = forgetType(t0Instance);
   }
 
   test() {
-    dynamic t1 = forgetType(t0Instance);
+    Object? t1 = forgetType(t0Instance);
     t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   foo() {
-    dynamic t1 = forgetType(t0Instance);
+    Object? t1 = forgetType(t0Instance);
     t1 = forgetType(t0Instance);
   }
 
-  dynamic t1 = forgetType(t0Instance);
+  Object? t1 = forgetType(t0Instance);
   t1 = forgetType(t0Instance);
   foo();
   LocalVariableTest x = new LocalVariableTest();
diff --git a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/dynamic/generated/left_top_return_value_A01_t01.dart
similarity index 61%
copy from LanguageFeatures/Subtyping/dynamic/generated/left_bottom_return_value_A02_t01.dart
copy to LanguageFeatures/Subtyping/dynamic/generated/left_top_return_value_A01_t01.dart
index 0e9a954..5ff8736 100644
--- a/LanguageFeatures/Subtyping/dynamic/generated/left_bottom_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/dynamic/generated/left_top_return_value_A01_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
@@ -25,23 +25,24 @@
 
 
 import '../../utils/common.dart';
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
 
-dynamic returnValueFunc() => forgetType(t0Instance);
+Object? returnValueFunc() => forgetType(t0Instance);
 
 class ReturnValueTest {
-  static dynamic staticTestMethod() => forgetType(t0Instance);
+  static Object? staticTestMethod() => forgetType(t0Instance);
 
-  dynamic testMethod() => forgetType(t0Instance);
+  Object? testMethod() => forgetType(t0Instance);
 
-  dynamic get testGetter => forgetType(t0Instance);
+  Object? get testGetter => forgetType(t0Instance);
 }
 
 class ReturnValueGen<X> {
@@ -51,7 +52,7 @@
 
 
 main() {
-  dynamic returnValueLocalFunc() => forgetType(t0Instance);
+  Object? returnValueLocalFunc() => forgetType(t0Instance);
 
   returnValueFunc();
   returnValueLocalFunc();
@@ -64,7 +65,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  new ReturnValueGen<dynamic>().testMethod();
-  new ReturnValueGen<dynamic>().testGetter;
+  new ReturnValueGen<Object?>().testMethod();
+  new ReturnValueGen<Object?>().testGetter;
   //# -->
 }
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 2ea5758..67e803d 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -25,41 +25,41 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
+namedArgumentsFunc1(Object? t1, {Object? t2}) {}
+positionalArgumentsFunc1(Object? t1, [Object? t2]) {}
 
 namedArgumentsFunc2<X>(X t1, {X t2}) {}
 positionalArgumentsFunc2<X>(X t1, [X t2]) {}
 
 class ArgumentsBindingClass {
-  ArgumentsBindingClass(Object t1) {}
+  ArgumentsBindingClass(Object? t1) {}
 
-  ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-  ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+  ArgumentsBindingClass.named(Object? t1, {Object? t2}) {}
+  ArgumentsBindingClass.positional(Object? t1, [Object? t2]) {}
 
-  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+  factory ArgumentsBindingClass.fNamed(Object? t1, {Object? t2}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+  factory ArgumentsBindingClass.fPositional(Object? t1, [Object? t2]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-  static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+  static namedArgumentsStaticMethod(Object? t1, {Object? t2}) {}
+  static positionalArgumentsStaticMethod(Object? t1, [Object? t2]) {}
 
-  namedArgumentsMethod(Object t1, {Object t2}) {}
-  positionalArgumentsMethod(Object t1, [Object t2]) {}
+  namedArgumentsMethod(Object? t1, {Object? t2}) {}
+  positionalArgumentsMethod(Object? t1, [Object? t2]) {}
 
-  set testSetter(Object val) {}
+  set testSetter(Object? val) {}
 }
 
 class ArgumentsBindingGen<X>  {
@@ -115,19 +115,19 @@
 
   //# <-- NotGenericFunctionType
   // test generic functions
-  namedArgumentsFunc2<Object>(forgetType(t0Instance), t2: forgetType(t0Instance));
-  positionalArgumentsFunc2<Object>(forgetType(t0Instance), forgetType(t0Instance));
+  namedArgumentsFunc2<Object?>(forgetType(t0Instance), t2: forgetType(t0Instance));
+  positionalArgumentsFunc2<Object?>(forgetType(t0Instance), forgetType(t0Instance));
 
   // test generic class constructors
-  ArgumentsBindingGen<Object> instance2 =
-      new ArgumentsBindingGen<Object>(forgetType(t0Instance));
-  instance2 = new ArgumentsBindingGen<Object>.fNamed(forgetType(t0Instance),
+  ArgumentsBindingGen<Object?> instance2 =
+      new ArgumentsBindingGen<Object?>(forgetType(t0Instance));
+  instance2 = new ArgumentsBindingGen<Object?>.fNamed(forgetType(t0Instance),
       t2: forgetType(t0Instance));
-  instance2 = new ArgumentsBindingGen<Object>.fPositional(forgetType(t0Instance),
+  instance2 = new ArgumentsBindingGen<Object?>.fPositional(forgetType(t0Instance),
       forgetType(t0Instance));
-  instance2 = new ArgumentsBindingGen<Object>.named(forgetType(t0Instance),
+  instance2 = new ArgumentsBindingGen<Object?>.named(forgetType(t0Instance),
       t2: forgetType(t0Instance));
-  instance2 = new ArgumentsBindingGen<Object>.positional(forgetType(t0Instance),
+  instance2 = new ArgumentsBindingGen<Object?>.positional(forgetType(t0Instance),
       forgetType(t0Instance));
 
   // test generic class methods and setters
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 82baa63..46bceca 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -25,28 +25,28 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ArgumentsBindingSuper1_t02 {
-  Object m;
+  Object? m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object? value) {}
+  ArgumentsBindingSuper1_t02.named(Object? value, {Object? val2}) {}
+  ArgumentsBindingSuper1_t02.positional(Object? value, [Object? val2]) {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
-  void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
-  Object get superGetter => m;
-  void set superSetter(Object val) {}
+  void superTest(Object? val) {}
+  void superTestPositioned(Object? val, [Object? val2]) {}
+  void superTestNamed(Object? val, {Object? val2}) {}
+  Object? get superGetter => m;
+  void set superSetter(Object? val) {}
 }
 
 class ArgumentsBinding1_t02 extends ArgumentsBindingSuper1_t02 {
@@ -124,13 +124,13 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ArgumentsBinding2_t02<Object> c2 =
-    new ArgumentsBinding2_t02<Object>(forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<Object>.c1(forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<Object>.c2(t1Instance, forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<Object>.c3(forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<Object>.c4(t1Instance, forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<Object>.c5(forgetType(t0Instance));
+  ArgumentsBinding2_t02<Object?> c2 =
+    new ArgumentsBinding2_t02<Object?>(forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c1(forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c2(t1Instance, forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c3(forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c4(t1Instance, forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c5(forgetType(t0Instance));
 
   c2.test(forgetType(t0Instance), t1Instance);
   c2.superTest(forgetType(t0Instance));
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 128e2fa..e5ea43e 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -25,23 +25,23 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Object m;
+  Object? m;
 
-  void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
-  Object get superGetter => m;
-  void set superSetter(Object val) {}
+  void superTest(Object? val) {}
+  void superTestPositioned(Object? val, [Object? val2]) {}
+  void superTestNamed(Object? val, {Object? val2}) {}
+  Object? get superGetter => m;
+  void set superSetter(Object? val) {}
 }
 
 class ArgumentsBinding1_t03 extends Object with ArgumentsBindingMixin1_t03 {
@@ -97,7 +97,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ArgumentsBinding2_t03<Object> c2 = new ArgumentsBinding2_t03<Object>();
+  ArgumentsBinding2_t03<Object?> c2 = new ArgumentsBinding2_t03<Object?>();
   c2.test(forgetType(t0Instance), t1Instance);
   c2.superTest(forgetType(t0Instance));
   c2.superTestPositioned(forgetType(t0Instance));
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 49cf4bd..528c1aa 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
@@ -25,39 +25,39 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
+namedArgumentsFunc1(Object? t1, {Object? t2}) {}
+positionalArgumentsFunc1(Object? t1, [Object? t2]) {}
 
 namedArgumentsFunc2<X>(X t1, {X t2}) {}
 positionalArgumentsFunc2<X>(X t1, [X t2]) {}
 
 class ArgumentsBindingClass {
-  ArgumentsBindingClass(Object t1) {}
+  ArgumentsBindingClass(Object? t1) {}
 
-  ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-  ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+  ArgumentsBindingClass.named(Object? t1, {Object? t2}) {}
+  ArgumentsBindingClass.positional(Object? t1, [Object? t2]) {}
 
-  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+  factory ArgumentsBindingClass.fNamed(Object? t1, {Object? t2}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+  factory ArgumentsBindingClass.fPositional(Object? t1, [Object? t2]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-  static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+  static namedArgumentsStaticMethod(Object? t1, {Object? t2}) {}
+  static positionalArgumentsStaticMethod(Object? t1, [Object? t2]) {}
 
-  namedArgumentsMethod(Object t1, {Object t2}) {}
-  positionalArgumentsMethod(Object t1, [Object t2]) {}
+  namedArgumentsMethod(Object? t1, {Object? t2}) {}
+  positionalArgumentsMethod(Object? t1, [Object? t2]) {}
 
-  set testSetter(Object val) {}
+  set testSetter(Object? val) {}
 }
 
 class ArgumentsBindingGen<X>  {
@@ -113,19 +113,19 @@
 
   //# <-- NotGenericFunctionType
   // test generic functions
-  namedArgumentsFunc2<Object>(forgetType(t0Instance), t2: forgetType(t0Instance));
-  positionalArgumentsFunc2<Object>(forgetType(t0Instance), forgetType(t0Instance));
+  namedArgumentsFunc2<Object?>(forgetType(t0Instance), t2: forgetType(t0Instance));
+  positionalArgumentsFunc2<Object?>(forgetType(t0Instance), forgetType(t0Instance));
 
   // test generic class constructors
-  ArgumentsBindingGen<Object> instance2 =
-      new ArgumentsBindingGen<Object>(forgetType(t0Instance));
-  instance2 = new ArgumentsBindingGen<Object>.fNamed(forgetType(t0Instance),
+  ArgumentsBindingGen<Object?> instance2 =
+      new ArgumentsBindingGen<Object?>(forgetType(t0Instance));
+  instance2 = new ArgumentsBindingGen<Object?>.fNamed(forgetType(t0Instance),
       t2: forgetType(t0Instance));
-  instance2 = new ArgumentsBindingGen<Object>.fPositional(forgetType(t0Instance),
+  instance2 = new ArgumentsBindingGen<Object?>.fPositional(forgetType(t0Instance),
       forgetType(t0Instance));
-  instance2 = new ArgumentsBindingGen<Object>.named(forgetType(t0Instance),
+  instance2 = new ArgumentsBindingGen<Object?>.named(forgetType(t0Instance),
       t2: forgetType(t0Instance));
-  instance2 = new ArgumentsBindingGen<Object>.positional(forgetType(t0Instance),
+  instance2 = new ArgumentsBindingGen<Object?>.positional(forgetType(t0Instance),
       forgetType(t0Instance));
 
   // test generic class methods and setters
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 8d0feb2..cc88e19 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
@@ -25,26 +25,26 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ArgumentsBindingSuper1_t02 {
-  Object m;
+  Object? m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object? value) {}
+  ArgumentsBindingSuper1_t02.named(Object? value, {Object? val2}) {}
+  ArgumentsBindingSuper1_t02.positional(Object? value, [Object? val2]) {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
-  void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
-  Object get superGetter => m;
-  void set superSetter(Object val) {}
+  void superTest(Object? val) {}
+  void superTestPositioned(Object? val, [Object? val2]) {}
+  void superTestNamed(Object? val, {Object? val2}) {}
+  Object? get superGetter => m;
+  void set superSetter(Object? val) {}
 }
 
 class ArgumentsBinding1_t02 extends ArgumentsBindingSuper1_t02 {
@@ -122,13 +122,13 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ArgumentsBinding2_t02<Object> c2 =
-    new ArgumentsBinding2_t02<Object>(forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<Object>.c1(forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<Object>.c2(t1Instance, forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<Object>.c3(forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<Object>.c4(t1Instance, forgetType(t0Instance));
-  c2 = new ArgumentsBinding2_t02<Object>.c5(forgetType(t0Instance));
+  ArgumentsBinding2_t02<Object?> c2 =
+    new ArgumentsBinding2_t02<Object?>(forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c1(forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c2(t1Instance, forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c3(forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c4(t1Instance, forgetType(t0Instance));
+  c2 = new ArgumentsBinding2_t02<Object?>.c5(forgetType(t0Instance));
 
   c2.test(forgetType(t0Instance), t1Instance);
   c2.superTest(forgetType(t0Instance));
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 a43c433..87ef11a 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
@@ -25,21 +25,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Object m;
+  Object? m;
 
-  void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
-  Object get superGetter => m;
-  void set superSetter(Object val) {}
+  void superTest(Object? val) {}
+  void superTestPositioned(Object? val, [Object? val2]) {}
+  void superTestNamed(Object? val, {Object? val2}) {}
+  Object? get superGetter => m;
+  void set superSetter(Object? val) {}
 }
 
 class ArgumentsBinding1_t03 extends Object with ArgumentsBindingMixin1_t03 {
@@ -95,7 +95,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ArgumentsBinding2_t03<Object> c2 = new ArgumentsBinding2_t03<Object>();
+  ArgumentsBinding2_t03<Object?> c2 = new ArgumentsBinding2_t03<Object?>();
   c2.test(forgetType(t0Instance), t1Instance);
   c2.superTest(forgetType(t0Instance));
   c2.superTestPositioned(forgetType(t0Instance));
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 49e9189..35e7ae8 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -25,19 +25,19 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ClassMember1_t01 {
-  static Object s = forgetType(t0Instance);
-  Object m = forgetType(t0Instance);
-  Object _p = forgetType(t0Instance);
+  static Object? s = forgetType(t0Instance);
+  Object? m = forgetType(t0Instance);
+  Object? _p = forgetType(t0Instance);
 
   ClassMember1_t01() {
     s = forgetType(t0Instance);
@@ -45,7 +45,7 @@
     _p = forgetType(t0Instance);
   }
 
-  ClassMember1_t01.named(Object value) {
+  ClassMember1_t01.named(Object? value) {
     s = value;
     m = value;
     _p = value;
@@ -59,21 +59,21 @@
     _p = forgetType(t0Instance);
   }
 
-  set setter(Object val) {
+  set setter(Object? val) {
     _p = val;
   }
 
-  Object get getter => forgetType(_p);
+  Object? get getter => forgetType(_p);
 
   static staticTest() {
     s = forgetType(t0Instance);
   }
 
-  static set staticSetter(Object val) {
+  static set staticSetter(Object? val) {
     s = val;
   }
 
-  static Object get staticGetter => forgetType(t0Instance);
+  static Object? get staticGetter => forgetType(t0Instance);
 }
 
 class ClassMember2_t01<X> {
@@ -101,7 +101,7 @@
     _p = val;
   }
 
-  Object get getter => forgetType(_p);
+  Object? get getter => forgetType(_p);
 }
 
 main() {
@@ -122,10 +122,10 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t01<Object> c2 = new ClassMember2_t01<Object>();
-  c2 = new ClassMember2_t01<Object>.short(forgetType(t0Instance),
+  ClassMember2_t01<Object?> c2 = new ClassMember2_t01<Object?>();
+  c2 = new ClassMember2_t01<Object?>.short(forgetType(t0Instance),
   forgetType(t0Instance));
-  c2 = new ClassMember2_t01<Object>.named(forgetType(t0Instance));
+  c2 = new ClassMember2_t01<Object?>.named(forgetType(t0Instance));
   c2.m = forgetType(t0Instance);
   c2.test(forgetType(t0Instance));
   c2.getter;
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 1bef6bc..ec738e3 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -25,17 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object? m;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -47,7 +47,7 @@
 
   ClassMemberSuper1_t02.short(this.m);
 
-  void set superSetter(Object val) {}
+  void set superSetter(Object? val) {}
 }
 
 class ClassMember1_t02 extends ClassMemberSuper1_t02 {
@@ -105,9 +105,9 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t02<Object> c2 = new ClassMember2_t02<Object>();
-  c2 = new ClassMember2_t02<Object>.short();
-  c2 = new ClassMember2_t02<Object>.named();
+  ClassMember2_t02<Object?> c2 = new ClassMember2_t02<Object?>();
+  c2 = new ClassMember2_t02<Object?>.short();
+  c2 = new ClassMember2_t02<Object?>.named();
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
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 56854ed..2dea859 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -25,17 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Object m;
+  Object? m;
 
   void set superSetter(dynamic val) {}
 }
@@ -68,7 +68,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Object> c2 = new ClassMember2_t03<Object>();
+  ClassMember2_t03<Object?> c2 = new ClassMember2_t03<Object?>();
   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 2544cd3..04af640 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
@@ -25,17 +25,17 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ClassMember1_t01 {
-  static Object s = forgetType(t0Instance);
-  Object m = forgetType(t0Instance);
-  Object _p = forgetType(t0Instance);
+  static Object? s = forgetType(t0Instance);
+  Object? m = forgetType(t0Instance);
+  Object? _p = forgetType(t0Instance);
 
   ClassMember1_t01() {
     s = forgetType(t0Instance);
@@ -43,7 +43,7 @@
     _p = forgetType(t0Instance);
   }
 
-  ClassMember1_t01.named(Object value) {
+  ClassMember1_t01.named(Object? value) {
     s = value;
     m = value;
     _p = value;
@@ -57,21 +57,21 @@
     _p = forgetType(t0Instance);
   }
 
-  set setter(Object val) {
+  set setter(Object? val) {
     _p = val;
   }
 
-  Object get getter => forgetType(_p);
+  Object? get getter => forgetType(_p);
 
   static staticTest() {
     s = forgetType(t0Instance);
   }
 
-  static set staticSetter(Object val) {
+  static set staticSetter(Object? val) {
     s = val;
   }
 
-  static Object get staticGetter => forgetType(t0Instance);
+  static Object? get staticGetter => forgetType(t0Instance);
 }
 
 class ClassMember2_t01<X> {
@@ -99,7 +99,7 @@
     _p = val;
   }
 
-  Object get getter => forgetType(_p);
+  Object? get getter => forgetType(_p);
 }
 
 main() {
@@ -120,10 +120,10 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t01<Object> c2 = new ClassMember2_t01<Object>();
-  c2 = new ClassMember2_t01<Object>.short(forgetType(t0Instance),
+  ClassMember2_t01<Object?> c2 = new ClassMember2_t01<Object?>();
+  c2 = new ClassMember2_t01<Object?>.short(forgetType(t0Instance),
   forgetType(t0Instance));
-  c2 = new ClassMember2_t01<Object>.named(forgetType(t0Instance));
+  c2 = new ClassMember2_t01<Object?>.named(forgetType(t0Instance));
   c2.m = forgetType(t0Instance);
   c2.test(forgetType(t0Instance));
   c2.getter;
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 1cf463e..32ea7f5 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
@@ -25,15 +25,15 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object? m;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -45,7 +45,7 @@
 
   ClassMemberSuper1_t02.short(this.m);
 
-  void set superSetter(Object val) {}
+  void set superSetter(Object? val) {}
 }
 
 class ClassMember1_t02 extends ClassMemberSuper1_t02 {
@@ -103,9 +103,9 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t02<Object> c2 = new ClassMember2_t02<Object>();
-  c2 = new ClassMember2_t02<Object>.short();
-  c2 = new ClassMember2_t02<Object>.named();
+  ClassMember2_t02<Object?> c2 = new ClassMember2_t02<Object?>();
+  c2 = new ClassMember2_t02<Object?>.short();
+  c2 = new ClassMember2_t02<Object?>.named();
   c2.m = forgetType(t0Instance);
   c2.test();
   c2.superSetter = forgetType(t0Instance);
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 cee9a77..6f3d9bd 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
@@ -25,15 +25,15 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Object m;
+  Object? m;
 
   void set superSetter(dynamic val) {}
 }
@@ -66,7 +66,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ClassMember2_t03<Object> c2 = new ClassMember2_t03<Object>();
+  ClassMember2_t03<Object?> c2 = new ClassMember2_t03<Object?>();
   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 61a82f1..1a6b58b 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -25,11 +25,11 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
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 ffdccb9..60ed957 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
@@ -25,9 +25,9 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
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 ef34fee..c7a79b2 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -25,11 +25,11 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
@@ -37,28 +37,28 @@
 class LocalVariableTest {
 
   LocalVariableTest() {
-    Object t1 = forgetType(t0Instance);
+    Object? t1 = forgetType(t0Instance);
     t1 = forgetType(t0Instance);
   }
 
   static staticTest() {
-    Object t1 = forgetType(t0Instance);
+    Object? t1 = forgetType(t0Instance);
     t1 = forgetType(t0Instance);
   }
 
   test() {
-    Object t1 = forgetType(t0Instance);
+    Object? t1 = forgetType(t0Instance);
     t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   foo() {
-    Object t1 = forgetType(t0Instance);
+    Object? t1 = forgetType(t0Instance);
     t1 = forgetType(t0Instance);
   }
 
-  Object t1 = forgetType(t0Instance);
+  Object? t1 = forgetType(t0Instance);
   t1 = forgetType(t0Instance);
   foo();
   LocalVariableTest x = new LocalVariableTest();
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 0446b9e..1fcade2 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
@@ -25,9 +25,9 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
@@ -35,28 +35,28 @@
 class LocalVariableTest {
 
   LocalVariableTest() {
-    Object t1 = forgetType(t0Instance);
+    Object? t1 = forgetType(t0Instance);
     t1 = forgetType(t0Instance);
   }
 
   static staticTest() {
-    Object t1 = forgetType(t0Instance);
+    Object? t1 = forgetType(t0Instance);
     t1 = forgetType(t0Instance);
   }
 
   test() {
-    Object t1 = forgetType(t0Instance);
+    Object? t1 = forgetType(t0Instance);
     t1 = forgetType(t0Instance);
   }
 }
 
 main() {
   foo() {
-    Object t1 = forgetType(t0Instance);
+    Object? t1 = forgetType(t0Instance);
     t1 = forgetType(t0Instance);
   }
 
-  Object t1 = forgetType(t0Instance);
+  Object? t1 = forgetType(t0Instance);
   t1 = forgetType(t0Instance);
   foo();
   LocalVariableTest x = new LocalVariableTest();
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 790688a..0f27820 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -25,23 +25,23 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
-Object returnValueFunc() => forgetType(t0Instance);
+Object? returnValueFunc() => forgetType(t0Instance);
 
 class ReturnValueTest {
-  static Object staticTestMethod() => forgetType(t0Instance);
+  static Object? staticTestMethod() => forgetType(t0Instance);
 
-  Object testMethod() => forgetType(t0Instance);
+  Object? testMethod() => forgetType(t0Instance);
 
-  Object get testGetter => forgetType(t0Instance);
+  Object? get testGetter => forgetType(t0Instance);
 }
 
 class ReturnValueGen<X> {
@@ -51,7 +51,7 @@
 
 
 main() {
-  Object returnValueLocalFunc() => forgetType(t0Instance);
+  Object? returnValueLocalFunc() => forgetType(t0Instance);
 
   returnValueFunc();
   returnValueLocalFunc();
@@ -64,7 +64,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  new ReturnValueGen<Object>().testMethod();
-  new ReturnValueGen<Object>().testGetter;
+  new ReturnValueGen<Object?>().testMethod();
+  new ReturnValueGen<Object?>().testGetter;
   //# -->
 }
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 64633b4..73a517a 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
@@ -25,21 +25,21 @@
 
 
 import '../../utils/common.dart';
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
-Object returnValueFunc() => forgetType(t0Instance);
+Object? returnValueFunc() => forgetType(t0Instance);
 
 class ReturnValueTest {
-  static Object staticTestMethod() => forgetType(t0Instance);
+  static Object? staticTestMethod() => forgetType(t0Instance);
 
-  Object testMethod() => forgetType(t0Instance);
+  Object? testMethod() => forgetType(t0Instance);
 
-  Object get testGetter => forgetType(t0Instance);
+  Object? get testGetter => forgetType(t0Instance);
 }
 
 class ReturnValueGen<X> {
@@ -49,7 +49,7 @@
 
 
 main() {
-  Object returnValueLocalFunc() => forgetType(t0Instance);
+  Object? returnValueLocalFunc() => forgetType(t0Instance);
 
   returnValueFunc();
   returnValueLocalFunc();
@@ -62,7 +62,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  new ReturnValueGen<Object>().testMethod();
-  new ReturnValueGen<Object>().testGetter;
+  new ReturnValueGen<Object?>().testMethod();
+  new ReturnValueGen<Object?>().testGetter;
   //# -->
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t01.dart
similarity index 97%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A01_t01.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t01.dart
index 50974d5..1688ddb 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t01.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t02.dart
similarity index 97%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A01_t02.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t02.dart
index 4ec277f..8abbef8 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t02.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t03.dart
similarity index 95%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A01_t03.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t03.dart
index f46833e..3dec242 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A01_t03.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t01.dart
similarity index 97%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t01.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t01.dart
index 9e3fdd8..1ec33c3 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t02.dart
similarity index 97%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t02.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t02.dart
index 7259daa..50aa374 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t02.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t03.dart
similarity index 96%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t03.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t03.dart
index f57b1c5..999153d 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_arguments_binding_A02_t03.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t01.dart
similarity index 94%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A01_t01.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t01.dart
index 19d3178..c3d287d 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t01.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A01_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t02.dart
similarity index 93%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A01_t02.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t02.dart
index 19e66e6..26ff348 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A01_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t02.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t03.dart
similarity index 91%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A01_t03.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t03.dart
index e06e3b9..e4990d6 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A01_t03.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t01.dart
similarity index 94%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t01.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t01.dart
index b2c19ee..7db0324 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t02.dart
similarity index 93%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t02.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t02.dart
index b5dfce6..42f7119 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t02.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t03.dart
similarity index 91%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t03.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t03.dart
index 57c216e..221e1b3 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_class_member_A02_t03.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_global_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_null_global_variable_A01_t01.dart
similarity index 91%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_global_variable_A01_t01.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_global_variable_A01_t01.dart
index 3d7f642..3b2347c 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_global_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_global_variable_A01_t01.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_null_global_variable_A02_t01.dart
similarity index 91%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_global_variable_A02_t01.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_global_variable_A02_t01.dart
index a7a05b5..60dd1f8 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_global_variable_A02_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_local_variable_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_null_local_variable_A01_t01.dart
similarity index 91%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_local_variable_A01_t01.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_local_variable_A01_t01.dart
index adb45e5..0f16c62 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_local_variable_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_local_variable_A01_t01.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_null_local_variable_A02_t01.dart
similarity index 92%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_local_variable_A02_t01.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_local_variable_A02_t01.dart
index 8878438..d6e03ae 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_local_variable_A02_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_return_value_A01_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_null_return_value_A01_t01.dart
similarity index 91%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_return_value_A01_t01.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_return_value_A01_t01.dart
index 7682568..e3a3963 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_return_value_A01_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_return_value_A01_t01.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,7 +16,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_null_A01.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_null_return_value_A02_t01.dart
similarity index 91%
rename from LanguageFeatures/Subtyping/static/generated/left_bottom_return_value_A02_t01.dart
rename to LanguageFeatures/Subtyping/static/generated/left_null_return_value_A02_t01.dart
index c92959f..a586f8f 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_null_return_value_A02_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,7 +17,7 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_null_A02.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.
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t01.dart
similarity index 65%
copy from LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t01.dart
copy to LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t01.dart
index 9e3fdd8..9b738e4 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,48 +17,49 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
 
-namedArgumentsFunc1(dynamic t1, {dynamic t2}) {}
-positionalArgumentsFunc1(dynamic t1, [dynamic t2]) {}
+namedArgumentsFunc1(Object? t1, {Object? t2}) {}
+positionalArgumentsFunc1(Object? t1, [Object? t2]) {}
 
 namedArgumentsFunc2<X>(X t1, {X t2}) {}
 positionalArgumentsFunc2<X>(X t1, [X t2]) {}
 
 class ArgumentsBindingClass {
-  ArgumentsBindingClass(dynamic t1) {}
+  ArgumentsBindingClass(Object? t1) {}
 
-  ArgumentsBindingClass.named(dynamic t1, {dynamic t2}) {}
-  ArgumentsBindingClass.positional(dynamic t1, [dynamic t2]) {}
+  ArgumentsBindingClass.named(Object? t1, {Object? t2}) {}
+  ArgumentsBindingClass.positional(Object? t1, [Object? t2]) {}
 
-  factory ArgumentsBindingClass.fNamed(dynamic t1, {dynamic t2}) {
+  factory ArgumentsBindingClass.fNamed(Object? t1, {Object? t2}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(dynamic t1, [dynamic t2]) {
+  factory ArgumentsBindingClass.fPositional(Object? t1, [Object? t2]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(dynamic t1, {dynamic t2}) {}
-  static positionalArgumentsStaticMethod(dynamic t1, [dynamic t2]) {}
+  static namedArgumentsStaticMethod(Object? t1, {Object? t2}) {}
+  static positionalArgumentsStaticMethod(Object? t1, [Object? t2]) {}
 
-  namedArgumentsMethod(dynamic t1, {dynamic t2}) {}
-  positionalArgumentsMethod(dynamic t1, [dynamic t2]) {}
+  namedArgumentsMethod(Object? t1, {Object? t2}) {}
+  positionalArgumentsMethod(Object? t1, [Object? t2]) {}
 
-  set testSetter(dynamic val) {}
+  set testSetter(Object? val) {}
 }
 
 class ArgumentsBindingGen<X>  {
@@ -105,15 +106,15 @@
 
   //# <-- NotGenericFunctionType
   // test generic functions
-  namedArgumentsFunc2<dynamic>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<dynamic>(t0Instance, t0Instance);
+  namedArgumentsFunc2<Object?>(t0Instance, t2: t0Instance);
+  positionalArgumentsFunc2<Object?>(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);
+  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);
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t02.dart
similarity index 75%
copy from LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t02.dart
copy to LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t02.dart
index 7259daa..05f78b9 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t02.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,35 +17,36 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
 
 class ArgumentsBindingSuper1_t02 {
-  dynamic m;
+  Object? m;
 
-  ArgumentsBindingSuper1_t02(dynamic value) {}
-  ArgumentsBindingSuper1_t02.named(dynamic value, {dynamic val2}) {}
-  ArgumentsBindingSuper1_t02.positional(dynamic value, [dynamic val2]) {}
+  ArgumentsBindingSuper1_t02(Object? value) {}
+  ArgumentsBindingSuper1_t02.named(Object? value, {Object? val2}) {}
+  ArgumentsBindingSuper1_t02.positional(Object? value, [Object? val2]) {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
-  void superTest(dynamic val) {}
-  void superTestPositioned(dynamic val, [dynamic val2]) {}
-  void superTestNamed(dynamic val, {dynamic val2}) {}
-  dynamic get superGetter => m;
-  void set superSetter(dynamic val) {}
+  void superTest(Object? val) {}
+  void superTestPositioned(Object? val, [Object? val2]) {}
+  void superTestNamed(Object? val, {Object? val2}) {}
+  Object? get superGetter => m;
+  void set superSetter(Object? val) {}
 }
 
 class ArgumentsBinding1_t02 extends ArgumentsBindingSuper1_t02 {
@@ -123,13 +124,13 @@
   // Test type parameters
 
   //# <-- 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);
+  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);
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A01_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t03.dart
similarity index 77%
copy from LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A01_t03.dart
copy to LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t03.dart
index f46833e..b5a591d 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_arguments_binding_A01_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_arguments_binding_A01_t03.dart
@@ -6,9 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
+ * subtype of a type T1.
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -16,30 +17,31 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A01.dart and 
+ * This test is generated from left_top_A01.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.
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-T1 t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  T1 m;
+  Object? 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) {}
+  void superTest(Object? val) {}
+  void superTestPositioned(Object? val, [Object? val2]) {}
+  void superTestNamed(Object? val, {Object? val2}) {}
+  Object? get superGetter => m;
+  void set superSetter(Object? val) {}
 }
 
 class ArgumentsBinding1_t03 extends Object with ArgumentsBindingMixin1_t03 {
@@ -95,7 +97,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ArgumentsBinding2_t03<T1> c2 = new ArgumentsBinding2_t03<T1>();
+  ArgumentsBinding2_t03<Object?> c2 = new ArgumentsBinding2_t03<Object?>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
   c2.superTestPositioned(t0Instance);
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t01.dart
similarity index 70%
copy from LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t01.dart
copy to LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t01.dart
index b2c19ee..858db98 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,26 +17,27 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
 
 class ClassMember1_t01 {
-  static dynamic s = t0Instance;
-  dynamic m = t0Instance;
-  dynamic _p = t0Instance;
+  static Object? s = t0Instance;
+  Object? m = t0Instance;
+  Object? _p = t0Instance;
 
   ClassMember1_t01() {
     s = t0Instance;
@@ -44,7 +45,7 @@
     _p = t0Instance;
   }
 
-  ClassMember1_t01.named(dynamic value) {
+  ClassMember1_t01.named(Object? value) {
     s = value;
     m = value;
     _p = value;
@@ -58,21 +59,21 @@
     _p = t0Instance;
   }
 
-  set setter(dynamic val) {
+  set setter(Object? val) {
     _p = val;
   }
 
-  dynamic get getter => _p;
+  Object? get getter => _p;
 
   static staticTest() {
     s = t0Instance;
   }
 
-  static set staticSetter(dynamic val) {
+  static set staticSetter(Object? val) {
     s = val;
   }
 
-  static dynamic get staticGetter => t0Instance;
+  static Object? get staticGetter => t0Instance;
 }
 
 main() {
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t02.dart b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t02.dart
similarity index 77%
copy from LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t02.dart
copy to LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t02.dart
index b5dfce6..a194fc1 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t02.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t02.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,24 +17,25 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
 
 class ClassMemberSuper1_t02 {
-  dynamic m;
+  Object? m;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -46,7 +47,7 @@
 
   ClassMemberSuper1_t02.short(this.m);
 
-  void set superSetter(dynamic val) {}
+  void set superSetter(Object? val) {}
 }
 
 class ClassMember1_t02 extends ClassMemberSuper1_t02 {
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t03.dart b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t03.dart
similarity index 74%
copy from LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t03.dart
copy to LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t03.dart
index 57c216e..d181500 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_class_member_A02_t03.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_class_member_A01_t03.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,24 +17,25 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
 
 class ClassMemberMixin1_t03 {
-  dynamic m;
+  Object? m;
 
   void set superSetter(dynamic val) {}
 }
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_global_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_global_variable_A01_t01.dart
similarity index 75%
copy from LanguageFeatures/Subtyping/static/generated/left_bottom_global_variable_A02_t01.dart
copy to LanguageFeatures/Subtyping/static/generated/left_top_global_variable_A01_t01.dart
index a7a05b5..e35ab1c 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_global_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_global_variable_A01_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,18 +17,19 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_local_variable_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_local_variable_A01_t01.dart
similarity index 68%
copy from LanguageFeatures/Subtyping/static/generated/left_bottom_local_variable_A02_t01.dart
copy to LanguageFeatures/Subtyping/static/generated/left_top_local_variable_A01_t01.dart
index 8878438..753eb68 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_local_variable_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_local_variable_A01_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,18 +17,19 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
@@ -36,28 +37,28 @@
 class LocalVariableTest {
 
   LocalVariableTest() {
-    dynamic t1 = t0Instance;
+    Object? t1 = t0Instance;
     t1 = t0Instance;
   }
 
   static staticTest() {
-    dynamic t1 = t0Instance;
+    Object? t1 = t0Instance;
     t1 = t0Instance;
   }
 
   test() {
-    dynamic t1 = t0Instance;
+    Object? t1 = t0Instance;
     t1 = t0Instance;
   }
 }
 
 main() {
   foo() {
-    dynamic t1 = t0Instance;
+    Object? t1 = t0Instance;
     t1 = t0Instance;
   }
 
-  dynamic t1 = t0Instance;
+  Object? t1 = t0Instance;
   t1 = t0Instance;
   foo();
   LocalVariableTest x = new LocalVariableTest();
diff --git a/LanguageFeatures/Subtyping/static/generated/left_bottom_return_value_A02_t01.dart b/LanguageFeatures/Subtyping/static/generated/left_top_return_value_A01_t01.dart
similarity index 61%
copy from LanguageFeatures/Subtyping/static/generated/left_bottom_return_value_A02_t01.dart
copy to LanguageFeatures/Subtyping/static/generated/left_top_return_value_A01_t01.dart
index c92959f..54ad7a3 100644
--- a/LanguageFeatures/Subtyping/static/generated/left_bottom_return_value_A02_t01.dart
+++ b/LanguageFeatures/Subtyping/static/generated/left_top_return_value_A01_t01.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
- * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
+ * Left Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 /**
  * @description Check that if type T0 is a subtype of a type T1, then instance
@@ -17,34 +17,35 @@
  * @author sgrekhov@unipro.ru
  */
 /*
- * This test is generated from left_bottom_A02.dart and 
+ * This test is generated from left_top_A01.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.
  */
 
 
+// SharedOptions=--enable-experiment=non-nullable
 
 class T1 {}
 
-Null t0Instance = null;
-dynamic t1Instance = new T1();
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
 
 
 
 
-dynamic returnValueFunc() => t0Instance;
+Object? returnValueFunc() => t0Instance;
 
 class ReturnValueTest {
-  static dynamic staticTestMethod() => t0Instance;
+  static Object? staticTestMethod() => t0Instance;
 
-  dynamic testMethod() => t0Instance;
+  Object? testMethod() => t0Instance;
 
-  dynamic get testGetter => t0Instance;
+  Object? get testGetter => t0Instance;
 }
 
 main() {
-  dynamic returnValueLocalFunc() => t0Instance;
+  Object? returnValueLocalFunc() => t0Instance;
 
   returnValueFunc();
   returnValueLocalFunc();
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 b7dec66..a242d1c 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -24,41 +24,41 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
+namedArgumentsFunc1(Object? t1, {Object? t2}) {}
+positionalArgumentsFunc1(Object? t1, [Object? t2]) {}
 
 namedArgumentsFunc2<X>(X t1, {X t2}) {}
 positionalArgumentsFunc2<X>(X t1, [X t2]) {}
 
 class ArgumentsBindingClass {
-  ArgumentsBindingClass(Object t1) {}
+  ArgumentsBindingClass(Object? t1) {}
 
-  ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-  ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+  ArgumentsBindingClass.named(Object? t1, {Object? t2}) {}
+  ArgumentsBindingClass.positional(Object? t1, [Object? t2]) {}
 
-  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+  factory ArgumentsBindingClass.fNamed(Object? t1, {Object? t2}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+  factory ArgumentsBindingClass.fPositional(Object? t1, [Object? t2]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-  static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+  static namedArgumentsStaticMethod(Object? t1, {Object? t2}) {}
+  static positionalArgumentsStaticMethod(Object? t1, [Object? t2]) {}
 
-  namedArgumentsMethod(Object t1, {Object t2}) {}
-  positionalArgumentsMethod(Object t1, [Object t2]) {}
+  namedArgumentsMethod(Object? t1, {Object? t2}) {}
+  positionalArgumentsMethod(Object? t1, [Object? t2]) {}
 
-  set testSetter(Object val) {}
+  set testSetter(Object? val) {}
 }
 
 class ArgumentsBindingGen<X>  {
@@ -105,15 +105,15 @@
 
   //# <-- NotGenericFunctionType
   // test generic functions
-  namedArgumentsFunc2<Object>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Object>(t0Instance, t0Instance);
+  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);
+  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);
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 b241a7f..0064a6c 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -24,28 +24,28 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ArgumentsBindingSuper1_t02 {
-  Object m;
+  Object? m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object? value) {}
+  ArgumentsBindingSuper1_t02.named(Object? value, {Object? val2}) {}
+  ArgumentsBindingSuper1_t02.positional(Object? value, [Object? val2]) {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
-  void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
-  Object get superGetter => m;
-  void set superSetter(Object val) {}
+  void superTest(Object? val) {}
+  void superTestPositioned(Object? val, [Object? val2]) {}
+  void superTestNamed(Object? val, {Object? val2}) {}
+  Object? get superGetter => m;
+  void set superSetter(Object? val) {}
 }
 
 class ArgumentsBinding1_t02 extends ArgumentsBindingSuper1_t02 {
@@ -123,13 +123,13 @@
   // Test type parameters
 
   //# <-- 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);
+  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);
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 21c94be..3d22b45 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -24,23 +24,23 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Object m;
+  Object? m;
 
-  void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
-  Object get superGetter => m;
-  void set superSetter(Object val) {}
+  void superTest(Object? val) {}
+  void superTestPositioned(Object? val, [Object? val2]) {}
+  void superTestNamed(Object? val, {Object? val2}) {}
+  Object? get superGetter => m;
+  void set superSetter(Object? val) {}
 }
 
 class ArgumentsBinding1_t03 extends Object with ArgumentsBindingMixin1_t03 {
@@ -96,7 +96,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ArgumentsBinding2_t03<Object> c2 = new ArgumentsBinding2_t03<Object>();
+  ArgumentsBinding2_t03<Object?> c2 = new ArgumentsBinding2_t03<Object?>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
   c2.superTestPositioned(t0Instance);
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 9ccdbe2..bc0612d 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
@@ -24,39 +24,39 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
-namedArgumentsFunc1(Object t1, {Object t2}) {}
-positionalArgumentsFunc1(Object t1, [Object t2]) {}
+namedArgumentsFunc1(Object? t1, {Object? t2}) {}
+positionalArgumentsFunc1(Object? t1, [Object? t2]) {}
 
 namedArgumentsFunc2<X>(X t1, {X t2}) {}
 positionalArgumentsFunc2<X>(X t1, [X t2]) {}
 
 class ArgumentsBindingClass {
-  ArgumentsBindingClass(Object t1) {}
+  ArgumentsBindingClass(Object? t1) {}
 
-  ArgumentsBindingClass.named(Object t1, {Object t2}) {}
-  ArgumentsBindingClass.positional(Object t1, [Object t2]) {}
+  ArgumentsBindingClass.named(Object? t1, {Object? t2}) {}
+  ArgumentsBindingClass.positional(Object? t1, [Object? t2]) {}
 
-  factory ArgumentsBindingClass.fNamed(Object t1, {Object t2}) {
+  factory ArgumentsBindingClass.fNamed(Object? t1, {Object? t2}) {
     return new ArgumentsBindingClass.named(t1, t2: t2);
   }
-  factory ArgumentsBindingClass.fPositional(Object t1, [Object t2]) {
+  factory ArgumentsBindingClass.fPositional(Object? t1, [Object? t2]) {
     return new ArgumentsBindingClass.positional(t1, t2);
   }
 
-  static namedArgumentsStaticMethod(Object t1, {Object t2}) {}
-  static positionalArgumentsStaticMethod(Object t1, [Object t2]) {}
+  static namedArgumentsStaticMethod(Object? t1, {Object? t2}) {}
+  static positionalArgumentsStaticMethod(Object? t1, [Object? t2]) {}
 
-  namedArgumentsMethod(Object t1, {Object t2}) {}
-  positionalArgumentsMethod(Object t1, [Object t2]) {}
+  namedArgumentsMethod(Object? t1, {Object? t2}) {}
+  positionalArgumentsMethod(Object? t1, [Object? t2]) {}
 
-  set testSetter(Object val) {}
+  set testSetter(Object? val) {}
 }
 
 class ArgumentsBindingGen<X>  {
@@ -103,15 +103,15 @@
 
   //# <-- NotGenericFunctionType
   // test generic functions
-  namedArgumentsFunc2<Object>(t0Instance, t2: t0Instance);
-  positionalArgumentsFunc2<Object>(t0Instance, t0Instance);
+  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);
+  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);
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 a858113..4a4fdd6 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
@@ -24,26 +24,26 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ArgumentsBindingSuper1_t02 {
-  Object m;
+  Object? m;
 
-  ArgumentsBindingSuper1_t02(Object value) {}
-  ArgumentsBindingSuper1_t02.named(Object value, {Object val2}) {}
-  ArgumentsBindingSuper1_t02.positional(Object value, [Object val2]) {}
+  ArgumentsBindingSuper1_t02(Object? value) {}
+  ArgumentsBindingSuper1_t02.named(Object? value, {Object? val2}) {}
+  ArgumentsBindingSuper1_t02.positional(Object? value, [Object? val2]) {}
   ArgumentsBindingSuper1_t02.short(this.m);
 
-  void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
-  Object get superGetter => m;
-  void set superSetter(Object val) {}
+  void superTest(Object? val) {}
+  void superTestPositioned(Object? val, [Object? val2]) {}
+  void superTestNamed(Object? val, {Object? val2}) {}
+  Object? get superGetter => m;
+  void set superSetter(Object? val) {}
 }
 
 class ArgumentsBinding1_t02 extends ArgumentsBindingSuper1_t02 {
@@ -121,13 +121,13 @@
   // Test type parameters
 
   //# <-- 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);
+  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);
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 e67bb0b..cc4f641 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
@@ -24,21 +24,21 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ArgumentsBindingMixin1_t03 {
-  Object m;
+  Object? m;
 
-  void superTest(Object val) {}
-  void superTestPositioned(Object val, [Object val2]) {}
-  void superTestNamed(Object val, {Object val2}) {}
-  Object get superGetter => m;
-  void set superSetter(Object val) {}
+  void superTest(Object? val) {}
+  void superTestPositioned(Object? val, [Object? val2]) {}
+  void superTestNamed(Object? val, {Object? val2}) {}
+  Object? get superGetter => m;
+  void set superSetter(Object? val) {}
 }
 
 class ArgumentsBinding1_t03 extends Object with ArgumentsBindingMixin1_t03 {
@@ -94,7 +94,7 @@
   // Test type parameters
 
   //# <-- NotGenericFunctionType
-  ArgumentsBinding2_t03<Object> c2 = new ArgumentsBinding2_t03<Object>();
+  ArgumentsBinding2_t03<Object?> c2 = new ArgumentsBinding2_t03<Object?>();
   c2.test(t0Instance, t1Instance);
   c2.superTest(t0Instance);
   c2.superTestPositioned(t0Instance);
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 b966642..588808a 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -24,19 +24,19 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ClassMember1_t01 {
-  static Object s = t0Instance;
-  Object m = t0Instance;
-  Object _p = t0Instance;
+  static Object? s = t0Instance;
+  Object? m = t0Instance;
+  Object? _p = t0Instance;
 
   ClassMember1_t01() {
     s = t0Instance;
@@ -44,7 +44,7 @@
     _p = t0Instance;
   }
 
-  ClassMember1_t01.named(Object value) {
+  ClassMember1_t01.named(Object? value) {
     s = value;
     m = value;
     _p = value;
@@ -58,21 +58,21 @@
     _p = t0Instance;
   }
 
-  set setter(Object val) {
+  set setter(Object? val) {
     _p = val;
   }
 
-  Object get getter => _p;
+  Object? get getter => _p;
 
   static staticTest() {
     s = t0Instance;
   }
 
-  static set staticSetter(Object val) {
+  static set staticSetter(Object? val) {
     s = val;
   }
 
-  static Object get staticGetter => t0Instance;
+  static Object? get staticGetter => t0Instance;
 }
 
 main() {
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 f338019..aafc528 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -24,17 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object? m;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -46,7 +46,7 @@
 
   ClassMemberSuper1_t02.short(this.m);
 
-  void set superSetter(Object val) {}
+  void set superSetter(Object? val) {}
 }
 
 class ClassMember1_t02 extends ClassMemberSuper1_t02 {
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 f6d2b4c..77215ce 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -24,17 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Object m;
+  Object? m;
 
   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 846c2e0..9e78f92 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
@@ -24,17 +24,17 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ClassMember1_t01 {
-  static Object s = t0Instance;
-  Object m = t0Instance;
-  Object _p = t0Instance;
+  static Object? s = t0Instance;
+  Object? m = t0Instance;
+  Object? _p = t0Instance;
 
   ClassMember1_t01() {
     s = t0Instance;
@@ -42,7 +42,7 @@
     _p = t0Instance;
   }
 
-  ClassMember1_t01.named(Object value) {
+  ClassMember1_t01.named(Object? value) {
     s = value;
     m = value;
     _p = value;
@@ -56,21 +56,21 @@
     _p = t0Instance;
   }
 
-  set setter(Object val) {
+  set setter(Object? val) {
     _p = val;
   }
 
-  Object get getter => _p;
+  Object? get getter => _p;
 
   static staticTest() {
     s = t0Instance;
   }
 
-  static set staticSetter(Object val) {
+  static set staticSetter(Object? val) {
     s = val;
   }
 
-  static Object get staticGetter => t0Instance;
+  static Object? get staticGetter => t0Instance;
 }
 
 main() {
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 84212df..f70da26 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
@@ -24,15 +24,15 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ClassMemberSuper1_t02 {
-  Object m;
+  Object? m;
 
   ClassMemberSuper1_t02(dynamic value) {
     m = value;
@@ -44,7 +44,7 @@
 
   ClassMemberSuper1_t02.short(this.m);
 
-  void set superSetter(Object val) {}
+  void set superSetter(Object? val) {}
 }
 
 class ClassMember1_t02 extends ClassMemberSuper1_t02 {
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 e26e70b..1744a80 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
@@ -24,15 +24,15 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
 class ClassMemberMixin1_t03 {
-  Object m;
+  Object? m;
 
   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 d6d3f4b..0e8bef1 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -24,11 +24,11 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
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 c89ece2..fa73647 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
@@ -24,9 +24,9 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
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 d65917d..e47ffd2 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -24,11 +24,11 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
@@ -36,28 +36,28 @@
 class LocalVariableTest {
 
   LocalVariableTest() {
-    Object t1 = t0Instance;
+    Object? t1 = t0Instance;
     t1 = t0Instance;
   }
 
   static staticTest() {
-    Object t1 = t0Instance;
+    Object? t1 = t0Instance;
     t1 = t0Instance;
   }
 
   test() {
-    Object t1 = t0Instance;
+    Object? t1 = t0Instance;
     t1 = t0Instance;
   }
 }
 
 main() {
   foo() {
-    Object t1 = t0Instance;
+    Object? t1 = t0Instance;
     t1 = t0Instance;
   }
 
-  Object t1 = t0Instance;
+  Object? t1 = t0Instance;
   t1 = t0Instance;
   foo();
   LocalVariableTest x = new LocalVariableTest();
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 23f1d23..1cb37b4 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
@@ -24,9 +24,9 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
@@ -34,28 +34,28 @@
 class LocalVariableTest {
 
   LocalVariableTest() {
-    Object t1 = t0Instance;
+    Object? t1 = t0Instance;
     t1 = t0Instance;
   }
 
   static staticTest() {
-    Object t1 = t0Instance;
+    Object? t1 = t0Instance;
     t1 = t0Instance;
   }
 
   test() {
-    Object t1 = t0Instance;
+    Object? t1 = t0Instance;
     t1 = t0Instance;
   }
 }
 
 main() {
   foo() {
-    Object t1 = t0Instance;
+    Object? t1 = t0Instance;
     t1 = t0Instance;
   }
 
-  Object t1 = t0Instance;
+  Object? t1 = t0Instance;
   t1 = t0Instance;
   foo();
   LocalVariableTest x = new LocalVariableTest();
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 b425565..1caf460 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
@@ -6,7 +6,7 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
@@ -24,27 +24,27 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
-Object returnValueFunc() => t0Instance;
+Object? returnValueFunc() => t0Instance;
 
 class ReturnValueTest {
-  static Object staticTestMethod() => t0Instance;
+  static Object? staticTestMethod() => t0Instance;
 
-  Object testMethod() => t0Instance;
+  Object? testMethod() => t0Instance;
 
-  Object get testGetter => t0Instance;
+  Object? get testGetter => t0Instance;
 }
 
 main() {
-  Object returnValueLocalFunc() => t0Instance;
+  Object? returnValueLocalFunc() => t0Instance;
 
   returnValueFunc();
   returnValueLocalFunc();
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 652d4ac..09cc57e 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
@@ -24,25 +24,25 @@
  */
 
 
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 
 
 
-Object returnValueFunc() => t0Instance;
+Object? returnValueFunc() => t0Instance;
 
 class ReturnValueTest {
-  static Object staticTestMethod() => t0Instance;
+  static Object? staticTestMethod() => t0Instance;
 
-  Object testMethod() => t0Instance;
+  Object? testMethod() => t0Instance;
 
-  Object get testGetter => t0Instance;
+  Object? get testGetter => t0Instance;
 }
 
 main() {
-  Object returnValueLocalFunc() => t0Instance;
+  Object? returnValueLocalFunc() => t0Instance;
 
   returnValueFunc();
   returnValueLocalFunc();
diff --git a/LanguageFeatures/Subtyping/static/tests/left_top_A01_t01.dart b/LanguageFeatures/Subtyping/static/tests/left_top_A01_t01.dart
new file mode 100644
index 0000000..bbd6b84
--- /dev/null
+++ b/LanguageFeatures/Subtyping/static/tests/left_top_A01_t01.dart
@@ -0,0 +1,26 @@
+/*
+ * 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 Bottom: if T0 is Never then T0 <: T1
+ * @description Check that if type T0 is Never then T0 is a subtype of T1
+ * @author sgrekhov@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable
+
+class T1 {}
+
+test(Never n) {
+  T1 t1 = n;
+  (T1 t){}(n);
+  foo(n);
+}
+
+foo(T1 t) {}
+
+main() {
+}
diff --git a/LanguageFeatures/Subtyping/static/tests/left_top_A01_t02.dart b/LanguageFeatures/Subtyping/static/tests/left_top_A01_t02.dart
new file mode 100644
index 0000000..e12043b
--- /dev/null
+++ b/LanguageFeatures/Subtyping/static/tests/left_top_A01_t02.dart
@@ -0,0 +1,29 @@
+/*
+ * 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 Bottom: if T0 is Never then T0 <: T1
+ * @description Check that if type T0 is Never then T0 is a subtype of T1. Test
+ * type aliases
+ * @author sgrekhov@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable,nonfunction-type-aliases
+
+class T1 {}
+
+typedef Neverland = Never;
+
+test(Neverland n) {
+  T1 t1 = n;
+  (T1 t){}(n);
+  foo(n);
+}
+
+foo(T1 t) {}
+
+main() {
+}
diff --git a/LanguageFeatures/Subtyping/static/tests/left_top_A01_t03.dart b/LanguageFeatures/Subtyping/static/tests/left_top_A01_t03.dart
new file mode 100644
index 0000000..7610fd1
--- /dev/null
+++ b/LanguageFeatures/Subtyping/static/tests/left_top_A01_t03.dart
@@ -0,0 +1,23 @@
+/*
+ * 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 Bottom: if T0 is Never then T0 <: T1
+ * @description Check that if type T0 is Never then T0 is a subtype of T1
+ * @author sgrekhov@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable
+import "../../../../Utils/expect.dart";
+class T1 {}
+
+class C<X extends T1> {}
+void foo<X extends T1>() {}
+
+main() {
+  Expect.isTrue(C<Never>() is C<Never>);
+  void x2 = foo<Never>();
+}
diff --git a/LanguageFeatures/Subtyping/static/tests/left_top_A01_t04.dart b/LanguageFeatures/Subtyping/static/tests/left_top_A01_t04.dart
new file mode 100644
index 0000000..8a0e046
--- /dev/null
+++ b/LanguageFeatures/Subtyping/static/tests/left_top_A01_t04.dart
@@ -0,0 +1,25 @@
+/*
+ * 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 Bottom: if T0 is Never then T0 <: T1
+ * @description Check that if type T0 is Never then T0 is a subtype of T1
+ * @author sgrekhov@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable,nonfunction-type-aliases
+import "../../../../Utils/expect.dart";
+class T1 {}
+
+class C<X extends T1> {}
+void foo<X extends T1>() {}
+
+typedef Neverland = Never;
+
+main() {
+  Expect.isTrue(C<Neverland>() is C<Never>);
+  void x2 = foo<Neverland>();
+}
diff --git a/LanguageFeatures/Subtyping/test_types/left_bottom_A01.dart b/LanguageFeatures/Subtyping/test_types/left_null_A01.dart
similarity index 89%
rename from LanguageFeatures/Subtyping/test_types/left_bottom_A01.dart
rename to LanguageFeatures/Subtyping/test_types/left_null_A01.dart
index c3ea21a..5f537bd 100644
--- a/LanguageFeatures/Subtyping/test_types/left_bottom_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/left_null_A01.dart
@@ -6,9 +6,9 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null then T0 is a subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 
 class T1 {}
diff --git a/LanguageFeatures/Subtyping/test_types/left_bottom_A02.dart b/LanguageFeatures/Subtyping/test_types/left_null_A02.dart
similarity index 90%
rename from LanguageFeatures/Subtyping/test_types/left_bottom_A02.dart
rename to LanguageFeatures/Subtyping/test_types/left_null_A02.dart
index 6904aa6..2c506f2 100644
--- a/LanguageFeatures/Subtyping/test_types/left_bottom_A02.dart
+++ b/LanguageFeatures/Subtyping/test_types/left_null_A02.dart
@@ -6,10 +6,10 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Left Bottom: T0 is Null.
+ * Left Null: T0 is Null.
  * @description Check that if type T0 is Null and T1 is dynamic then T0 is a
  * subtype of a type T1.
- * @author ngl@unipro.ru
+ * @author sgrekhov@unipro.ru
  */
 
 class T1 {}
diff --git a/LanguageFeatures/Subtyping/test_types/left_top_A01.dart b/LanguageFeatures/Subtyping/test_types/left_top_A01.dart
new file mode 100644
index 0000000..022f5a8
--- /dev/null
+++ b/LanguageFeatures/Subtyping/test_types/left_top_A01.dart
@@ -0,0 +1,22 @@
+/*
+ * 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 Top: if T0 is dynamic or void then T0 <: T1 if Object? <: T1
+ * @description Check that if type T0 is dynamic and Object? <: T1 then T0 is a
+ * subtype of a type T1.
+ * @author sgrekhov@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable
+
+class T1 {}
+
+dynamic t0Instance = "Show must go on";
+T1? t1Instance = new T1();
+
+//# @T0 = dynamic
+//# @T1 = Object?
diff --git a/LanguageFeatures/Subtyping/test_types/right_top_A01.dart b/LanguageFeatures/Subtyping/test_types/right_top_A01.dart
index 061944d..c96c39d 100644
--- a/LanguageFeatures/Subtyping/test_types/right_top_A01.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_top_A01.dart
@@ -6,16 +6,16 @@
 /**
  * @assertion We say that a type T0 is a subtype of a type T1 (written T0 <: T1)
  * when:
- * Right Top: T1 is a top type (i.e. Object, dynamic, or void)
+ * Right Top: T1 is a top type (i.e. Object?, dynamic, or void)
  * @description Check that if type T1 is an Object then T0 is a subtype of a
  * type T1
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 class T0 {}
 
 T0 t0Instance = new T0();
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 //# @T0 = T0
-//# @T1 = Object
+//# @T1 = Object?
diff --git a/LanguageFeatures/Subtyping/test_types/right_top_A03.dart b/LanguageFeatures/Subtyping/test_types/right_top_A03.dart
index 710815d..ab31e4d 100644
--- a/LanguageFeatures/Subtyping/test_types/right_top_A03.dart
+++ b/LanguageFeatures/Subtyping/test_types/right_top_A03.dart
@@ -11,9 +11,9 @@
  * T0 is a subtype of a type T1.
  * @author sgrekhov@unipro.ru
  */
-
+// SharedOptions=--enable-experiment=non-nullable
 dynamic t0Instance = "";
-Object t1Instance = new Object();
+Object? t1Instance = new Object();
 
 //# @T0 = dynamic
-//# @T1 = Object
+//# @T1 = Object?