Fixed Issue #460: tests for Null promotion added, typos corrected.
diff --git a/LanguageFeatures/nnbd/null_promotion_A01_t01.dart b/LanguageFeatures/nnbd/null_promotion_A01_t01.dart
index c231aa2..d611bc2 100644
--- a/LanguageFeatures/nnbd/null_promotion_A01_t01.dart
+++ b/LanguageFeatures/nnbd/null_promotion_A01_t01.dart
@@ -10,7 +10,6 @@
  *
  * @description Check that [e] is promoted to [Null] in the [true] condition.
  * Test [e == null] expression
- * @author iarkh@unipro.ru
  * @author sgrekhov@unipro.ru
  */
 // SharedOptions=--enable-experiment=non-nullable
diff --git a/LanguageFeatures/nnbd/null_promotion_A01_t02.dart b/LanguageFeatures/nnbd/null_promotion_A01_t02.dart
index 4d8bbe9..1136b7d 100644
--- a/LanguageFeatures/nnbd/null_promotion_A01_t02.dart
+++ b/LanguageFeatures/nnbd/null_promotion_A01_t02.dart
@@ -34,7 +34,7 @@
   }
 
   B? b1 = init();
-  if (b1 is null) {
+  if (b1 is Null) {
     b1.bar();
 //     ^^^
 // [analyzer] unspecified
diff --git a/LanguageFeatures/nnbd/null_promotion_A01_t06.dart b/LanguageFeatures/nnbd/null_promotion_A01_t06.dart
new file mode 100644
index 0000000..e251752
--- /dev/null
+++ b/LanguageFeatures/nnbd/null_promotion_A01_t06.dart
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2019, 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 A check of the form [e == null] or of the form [e is Null] where
+ * [e] has static type [T] promotes the type of [e] to [Null] in the [true]
+ * continuation, and to [NonNull(T)] in the [false] continuation.
+ *
+ * @description Check that [e] is promoted to [NonNull(T)] in the [false]
+ * condition. Test [e == null] expression
+ * @author iarkh@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable
+
+class A {
+  foo() {}
+}
+
+class B<T> {
+  bar() {}
+}
+
+dynamic init(dynamic x) => x;
+
+main() {
+  A? a = init(A());
+  if (a == null) {
+  } else {
+    a.foo();
+    A a1 = a;
+  }
+
+  B? b1 = init(B());
+  if (b1 == null) {
+  } else {
+    b1.bar();
+    B b11 = b1;
+  }
+
+  B<int>? b2 = init(B<int>());
+  if (b2 == null) {
+  } else {
+    b2.bar;
+    B b22 = b2;
+  }
+
+  int? i = init(10);
+  if (i == null) {
+  } else {
+    i.isOdd;
+    int i1 = i + 10;
+  }
+}
diff --git a/LanguageFeatures/nnbd/null_promotion_A01_t07.dart b/LanguageFeatures/nnbd/null_promotion_A01_t07.dart
new file mode 100644
index 0000000..55a58cb
--- /dev/null
+++ b/LanguageFeatures/nnbd/null_promotion_A01_t07.dart
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2019, 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 A check of the form [e == null] or of the form [e is Null] where
+ * [e] has static type [T] promotes the type of [e] to [Null] in the [true]
+ * continuation, and to [NonNull(T)] in the [false] continuation.
+ *
+ * @description Check that [e] is promoted to [NonNull(T)] in the [false]
+ * condition. Test [e is Null] expression.
+ * @author iarkh@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable
+
+class A {
+  foo() {}
+}
+
+class B<T> {
+  bar() {}
+}
+
+dynamic init(x) => x;
+
+main() {
+  A? a = init(A());
+  if (a is Null) {
+  } else {
+    a.foo();
+    A a1 = a;
+  }
+
+  B? b1 = init(B());
+  if (b1 is Null) {
+  } else {
+    b1.bar();
+    B b11 = b1;
+  }
+
+  B<int>? b2 = init(B<int>());
+  if (b2 is Null) {
+  } else {
+    b2.bar();
+    B b22 = b2;
+  }
+
+  int? i = init(0);
+  if (i is Null) {
+  } else {
+    i.isOdd;
+    int i1 = i + 2;
+  }
+}
diff --git a/LanguageFeatures/nnbd/null_promotion_A01_t08.dart b/LanguageFeatures/nnbd/null_promotion_A01_t08.dart
new file mode 100644
index 0000000..b3ba981
--- /dev/null
+++ b/LanguageFeatures/nnbd/null_promotion_A01_t08.dart
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2019, 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 A check of the form [e == null] or of the form [e is Null] where
+ * [e] has static type [T] promotes the type of [e] to [Null] in the [true]
+ * continuation, and to [NonNull(T)] in the [false] continuation.
+ *
+ * @description Check that [e] is promoted to [NonNull(T)] in the [false]
+ * condition. Test type aliases.
+ * @author iarkh@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable,nonfunction-type-aliases
+
+class A {
+  foo() {}
+}
+
+typedef AAlias1 = A?
+typedef AAlias2 = AAlias1?
+
+dynamic init(x) => x;
+
+main() {
+  AAlias1 a1 = init(A());
+  if (a1 is Null) {
+  } else {
+    a1.foo();
+    AAlias1 a11 = a1;
+    a11.foo();
+  }
+
+  if (a1 == null) {
+  } else {
+    a1.foo();
+    AAlias1 a11 = a1;
+  }
+
+  AAlias2? a2 = init(A());
+  if (a2 is Null) {
+  } else {
+    a2.foo();
+    AAlias1 a22 = a1;
+  }
+
+  if (a2 == null) {
+  } else {
+    a2.foo();
+    AAlias1 a22 = a1;
+  }
+}
diff --git a/LanguageFeatures/nnbd/null_promotion_A01_t09.dart b/LanguageFeatures/nnbd/null_promotion_A01_t09.dart
new file mode 100644
index 0000000..1c0cc32
--- /dev/null
+++ b/LanguageFeatures/nnbd/null_promotion_A01_t09.dart
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2019, 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 A check of the form [e == null] or of the form [e is Null] where
+ * [e] has static type [T] promotes the type of [e] to [Null] in the [true]
+ * continuation, and to [NonNull(T)] in the [false] continuation.
+ *
+ * @description Check that [e] is promoted to [NonNull(T)] in the [false]
+ * condition. Test pre-NNBD legacy types
+ * @author iarkh@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable
+import "legacy_library_lib.dart";
+
+dynamic init(x) => x;
+
+main() {
+  A? a = init(A());
+  if (a is Null) {
+  } else {
+    a.foo();
+    A a1 = a;
+  }
+
+  if (a == null) {
+  } else {
+    a.foo();
+    A a1 = a;
+  }
+}
diff --git a/LanguageFeatures/nnbd/null_promotion_A01_t10.dart b/LanguageFeatures/nnbd/null_promotion_A01_t10.dart
new file mode 100644
index 0000000..0dbcc94
--- /dev/null
+++ b/LanguageFeatures/nnbd/null_promotion_A01_t10.dart
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2019, 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 A check of the form [e == null] or of the form [e is Null] where
+ * [e] has static type [T] promotes the type of [e] to [Null] in the [true]
+ * continuation, and to [NonNull(T)] in the [false] continuation.
+ *
+ * @description Check that [e] is promoted to [NonNull(T)] in the [false]
+ * condition. Test pre-NNBD legacy types and type aliases
+ * @author iarkh@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable,nonfunction-type-aliases
+import "legacy_library_lib.dart";
+import "legacy_library_aliases_lib.dart" as legacy;
+
+dynamic init(x) => x;
+
+typedef AAlias = A?;
+
+main() {
+  AAlias a1 = init(A());
+  if (a1 is Null) {
+  } else {
+    a1.foo();
+    AAlias a11 = a1;
+  }
+
+  if (a1 == null) {
+  } else {
+    a1.foo();
+    AAlias a11 = a1;
+  }
+
+  legacy.AAlias? a2 = init(legacy.A());
+  if (a2 is Null) {
+  } else {
+    a2.bar();
+    legacy.AAlias a22 = a2;
+  }
+
+  if (a2 == null) {
+  } else {
+    a2.bar();
+    legacy.AAlias a22 = a2;
+  }
+}
diff --git a/LanguageFeatures/nnbd/null_promotion_A02_t01.dart b/LanguageFeatures/nnbd/null_promotion_A02_t01.dart
index 393cf39..100ec03 100644
--- a/LanguageFeatures/nnbd/null_promotion_A02_t01.dart
+++ b/LanguageFeatures/nnbd/null_promotion_A02_t01.dart
@@ -10,7 +10,6 @@
  *
  * @description Check that type of [e] is promoted to [Null] in the [false]
  * condition. Test [e != null] expression
- * @author iarkh@unipro.ru
  * @author sgrekhov@unipro.ru
  */
 // SharedOptions=--enable-experiment=non-nullable
diff --git a/LanguageFeatures/nnbd/null_promotion_A02_t02.dart b/LanguageFeatures/nnbd/null_promotion_A02_t02.dart
index 113cc1a..783303b 100644
--- a/LanguageFeatures/nnbd/null_promotion_A02_t02.dart
+++ b/LanguageFeatures/nnbd/null_promotion_A02_t02.dart
@@ -27,20 +27,24 @@
   A? a = new A();
   if (a is A) {
     a.foo();
+    A a1 = a;
   }
 
   B? b1 = new B();
   if (b1 is B) {
     b1.bar();
+    B bb = b1;
   }
 
   B<int>? b2 = new B<int>();
   if (b2 is B<int>()) {
     b2.bar();
+    B b22 = b2;
   }
 
   int? i = 42;
   if (i is int) {
     i.isOdd;
+    int i1 = i + 12;
   }
 }
diff --git a/LanguageFeatures/nnbd/null_promotion_A02_t04.dart b/LanguageFeatures/nnbd/null_promotion_A02_t04.dart
index 2aeef83..c84c8f9 100644
--- a/LanguageFeatures/nnbd/null_promotion_A02_t04.dart
+++ b/LanguageFeatures/nnbd/null_promotion_A02_t04.dart
@@ -32,20 +32,24 @@
   AAlias a = new A();
   if (a is A) {
     a.foo();
+    A a1 = a;
   }
 
   BAlias1 b1 = new B();
   if (b1 is B) {
     b1.bar();
+    B b11 = b1;
   }
 
   BAlias2 b2 = new B<int>();
   if (b2 is B<int>()) {
     b2.bar();
+    B b22 = b2;
   }
 
   IntAlias i = 42;
   if (i is int) {
     i.isOdd;
+    int j = i + 10;
   }
 }
diff --git a/LanguageFeatures/nnbd/null_promotion_A02_t07.dart b/LanguageFeatures/nnbd/null_promotion_A02_t07.dart
new file mode 100644
index 0000000..5167ccf
--- /dev/null
+++ b/LanguageFeatures/nnbd/null_promotion_A02_t07.dart
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2019, 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 A check of the form [e != null] or of the form [e is T] where [e]
+ * has static type [T?] promotes the type of [e] to [T] in the [true]
+ * continuation, and to [Null] in the [false] continuation.
+ *
+ * @description Check that type of [e] is promoted to [T] in the [true]
+ * condition. Test [e != null] expression. Test pre-NNBD legacy types.
+ * @author iarkh@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable
+import "legacy_library_lib.dart";
+
+main() {
+  A? a = new A();
+
+  if (a != null) {
+    a.foo();
+    A a1 = a;
+  }
+}
diff --git a/LanguageFeatures/nnbd/null_promotion_A02_t08.dart b/LanguageFeatures/nnbd/null_promotion_A02_t08.dart
new file mode 100644
index 0000000..d4f7396
--- /dev/null
+++ b/LanguageFeatures/nnbd/null_promotion_A02_t08.dart
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2019, 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 A check of the form [e != null] or of the form [e is T] where [e]
+ * has static type [T?] promotes the type of [e] to [T] in the [true]
+ * continuation, and to [Null] in the [false] continuation.
+ *
+ * @description Check that type of [e] is promoted to [T] in the [false]
+ * condition. Test [e != null] expression. Test pre-NNBD legacy types and type
+ * aliases
+ * @author iarkh@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable
+import "legacy_library_lib.dart";
+import "legacy_library_aliases_lib.dart" as aliases;
+
+typedef AAlias = A?;
+
+main() {
+  AAlias a = new A();
+
+  if (a != null) {
+    a.foo();
+    AAlias a1 = a;
+  }
+
+  aliases.AAlias? a2 = aliases.A();
+  if (a2 != null) {
+    a2.bar();
+    aliases.AAlias a22 = a2;
+  }
+}