Late variables tests changed according to the spec (await and late final)
diff --git a/LanguageFeatures/nnbd/static_errors_A24_t01.dart b/LanguageFeatures/nnbd/static_errors_A24_t01.dart
index 468a1b0..9c574cf 100644
--- a/LanguageFeatures/nnbd/static_errors_A24_t01.dart
+++ b/LanguageFeatures/nnbd/static_errors_A24_t01.dart
@@ -5,7 +5,8 @@
  */
 /**
  * @assertion It is an error for the initializer expression of a late local
- * variable to use a prefix await expression.
+ * variable to use a prefix await expression that is not nested inside of
+ * another function expression.
  *
  * @description Check that it is an error for the initializer expression of a
  * late local variable to use a prefix await expression.
diff --git a/LanguageFeatures/nnbd/static_errors_A24_t02.dart b/LanguageFeatures/nnbd/static_errors_A24_t02.dart
index 004fca2..1ff6cd7 100644
--- a/LanguageFeatures/nnbd/static_errors_A24_t02.dart
+++ b/LanguageFeatures/nnbd/static_errors_A24_t02.dart
@@ -5,7 +5,8 @@
  */
 /**
  * @assertion It is an error for the initializer expression of a late local
- * variable to use a prefix await expression.
+ * variable to use a prefix await expression that is not nested inside of
+ * another function expression.
  *
  * @description Check that it is an error for the initializer expression of a
  * late local variable to use a prefix await expression.
diff --git a/LanguageFeatures/nnbd/static_errors_A24_t03.dart b/LanguageFeatures/nnbd/static_errors_A24_t03.dart
new file mode 100644
index 0000000..be9efa5
--- /dev/null
+++ b/LanguageFeatures/nnbd/static_errors_A24_t03.dart
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2020, 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 It is an error for the initializer expression of a late local
+ * variable to use a prefix await expression that is not nested inside of
+ * another function expression.
+ *
+ * @description Check that it is not an error for the initializer expression of
+ * a late local variable to use a prefix await expression if it is nested inside
+ * of another function expression
+ * @author sgrekhov@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable
+// Requirements=nnbd-strong
+import "dart:async";
+
+class C {
+  static void sTest() async {
+    late Future<int> i = init();
+  }
+
+  void mTest() async {
+    late Future<int> i = init();
+  }
+}
+
+void test() async {
+  late Future<int> i = init();
+}
+
+Future<int> init() async {
+  return await 42;
+}
+
+main() async {
+  late Future<int> i = init();
+  test();
+  C.sTest();
+  C().mTest();
+}
diff --git a/LanguageFeatures/nnbd/static_errors_A28_t01.dart b/LanguageFeatures/nnbd/static_errors_A28_t01.dart
new file mode 100644
index 0000000..b4e3e43
--- /dev/null
+++ b/LanguageFeatures/nnbd/static_errors_A28_t01.dart
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2020, 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 It is a compile time error to assign a value to a local variable
+ * marked late and final when the variable is definitely assigned. This includes
+ * all forms of assignments, including assignments via the composite assignment
+ * operators as well as pre and post-fix operators.
+ *
+ * @description Check that it is a compile time error to assign a value to a
+ * local variable marked late and final when the variable is definitely assigned
+ * @author sgrekhov@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable
+// Requirements=nnbd-strong
+
+main() {
+  late final int x = 42;
+  x = 1;
+//  ^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  x += 1;
+//  ^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  x -= 1;
+//  ^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  x *= 1;
+//  ^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  x %= 1;
+//  ^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  x ~/= 1;
+//  ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  x <<= 1;
+//  ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  x >>= 1;
+//  ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  x &= 1;
+//  ^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  x ^= 1;
+//  ^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  x |= 1;
+//  ^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
diff --git a/LanguageFeatures/nnbd/static_errors_A28_t02.dart b/LanguageFeatures/nnbd/static_errors_A28_t02.dart
new file mode 100644
index 0000000..b715d37
--- /dev/null
+++ b/LanguageFeatures/nnbd/static_errors_A28_t02.dart
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2020, 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 It is a compile time error to assign a value to a local variable
+ * marked late and final when the variable is definitely assigned. This includes
+ * all forms of assignments, including assignments via the composite assignment
+ * operators as well as pre and post-fix operators.
+ *
+ * @description Check that it is a compile time error to assign a value to a
+ * local variable marked late and final when the variable is definitely assigned
+ * @author sgrekhov@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable,triple-shift
+// Requirements=nnbd-strong
+
+main() {
+  late final int x = 42;
+  x >>>= 1;
+//  ^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
diff --git a/LanguageFeatures/nnbd/static_errors_A28_t03.dart b/LanguageFeatures/nnbd/static_errors_A28_t03.dart
new file mode 100644
index 0000000..6140b9a
--- /dev/null
+++ b/LanguageFeatures/nnbd/static_errors_A28_t03.dart
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2020, 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 It is a compile time error to assign a value to a local variable
+ * marked late and final when the variable is definitely assigned. This includes
+ * all forms of assignments, including assignments via the composite assignment
+ * operators as well as pre and post-fix operators.
+ *
+ * @description Check that it is a compile time error to assign a value to a
+ * local variable marked late and final when the variable is definitely assigned
+ * @author sgrekhov@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable
+// Requirements=nnbd-strong
+
+main() {
+  late final num? x = 42;
+  x ??= 1;
+//  ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
diff --git a/LanguageFeatures/nnbd/static_errors_A28_t04.dart b/LanguageFeatures/nnbd/static_errors_A28_t04.dart
new file mode 100644
index 0000000..e41ce49
--- /dev/null
+++ b/LanguageFeatures/nnbd/static_errors_A28_t04.dart
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2020, 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 It is a compile time error to assign a value to a local variable
+ * marked late and final when the variable is definitely assigned. This includes
+ * all forms of assignments, including assignments via the composite assignment
+ * operators as well as pre and post-fix operators.
+ *
+ * @description Check that it is a compile time error to assign a value to a
+ * local variable marked late and final when the variable is definitely assigned
+ * @author sgrekhov@unipro.ru
+ */
+// SharedOptions=--enable-experiment=non-nullable
+// Requirements=nnbd-strong
+
+main() {
+  late final int x = 42;
+  x++;
+// ^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  x--;
+// ^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}