diff --git a/pkg/test_runner/lib/src/command_output.dart b/pkg/test_runner/lib/src/command_output.dart
index 64996c0..4c953dd 100644
--- a/pkg/test_runner/lib/src/command_output.dart
+++ b/pkg/test_runner/lib/src/command_output.dart
@@ -1249,10 +1249,12 @@
 
 class FastaCommandOutput extends CompilationCommandOutput
     with _StaticErrorOutput {
-  static void parseErrors(String stdout, List<StaticError> errors,
-      [List<StaticError> warnings]) {
+  static void parseErrors(
+      String stdout, List<StaticError> errors, List<StaticError> warnings) {
     _StaticErrorOutput._parseCfeErrors(
         ErrorSource.cfe, _errorRegexp, stdout, errors);
+    _StaticErrorOutput._parseCfeErrors(
+        ErrorSource.cfe, _warningRegexp, stdout, warnings);
   }
 
   /// Matches the first line of a Fasta error message. Fasta prints errors to
@@ -1268,6 +1270,19 @@
   static final _errorRegexp =
       RegExp(r"^([^:]+):(\d+):(\d+): Error: (.*)$", multiLine: true);
 
+  /// Matches the first line of a Fasta warning message. Fasta prints errors to
+  /// stdout that look like:
+  ///
+  ///     tests/language_2/some_test.dart:7:21: Warning: Some message.
+  ///     Try fixing the code to be less bad.
+  ///       var _ = <int>[if (1) 2];
+  ///                    ^
+  ///
+  /// The test runner only validates the main error message, and not the
+  /// suggested fixes, so we only parse the first line.
+  static final _warningRegexp =
+      RegExp(r"^([^:]+):(\d+):(\d+): Warning: (.*)$", multiLine: true);
+
   FastaCommandOutput(
       Command command,
       int exitCode,
@@ -1282,8 +1297,10 @@
   @override
   void _parseErrors() {
     var errors = <StaticError>[];
-    parseErrors(decodeUtf8(stdout), errors);
+    var warnings = <StaticError>[];
+    parseErrors(decodeUtf8(stdout), errors, warnings);
     errors.forEach(addError);
+    warnings.forEach(addWarning);
   }
 }
 
diff --git a/pkg/test_runner/tool/update_static_error_tests.dart b/pkg/test_runner/tool/update_static_error_tests.dart
index eacb060..6b7379a 100644
--- a/pkg/test_runner/tool/update_static_error_tests.dart
+++ b/pkg/test_runner/tool/update_static_error_tests.dart
@@ -268,8 +268,9 @@
     return null;
   }
   var errors = <StaticError>[];
-  FastaCommandOutput.parseErrors(result.stdout as String, errors);
-  return errors;
+  var warnings = <StaticError>[];
+  FastaCommandOutput.parseErrors(result.stdout as String, errors, warnings);
+  return [...errors, ...warnings];
 }
 
 /// Invoke dart2js on [path] and gather all static errors it reports.
diff --git a/runtime/platform/globals.h b/runtime/platform/globals.h
index 91d062b..46ea17b 100644
--- a/runtime/platform/globals.h
+++ b/runtime/platform/globals.h
@@ -598,7 +598,7 @@
 // The USE(x) template is used to silence C++ compiler warnings issued
 // for unused variables.
 template <typename T>
-static inline void USE(T) {}
+static inline void USE(T&&) {}
 
 // The type-based aliasing rule allows the compiler to assume that
 // pointers of different types (for some definition of different)
diff --git a/tests/language/const/syntax_test.dart b/tests/language/const/syntax_test.dart
index 138d30c..aa33723 100644
--- a/tests/language/const/syntax_test.dart
+++ b/tests/language/const/syntax_test.dart
@@ -59,7 +59,11 @@
 const int F3;
 //        ^^
 // [analyzer] COMPILE_TIME_ERROR.CONST_NOT_INITIALIZED
+// [cfe] Field 'F3' should be initialized because its type 'int' doesn't allow null.
+//        ^
 // [cfe] The const variable 'F3' must be initialized.
+//          ^
+// [cfe] A value of type 'Null' can't be assigned to a variable of type 'int'.
 
 class Point {
   final x, y;
diff --git a/tests/language/if_null/assignment_behavior_test.dart b/tests/language/if_null/assignment_behavior_test.dart
index b17afd1..9bbfe18 100644
--- a/tests/language/if_null/assignment_behavior_test.dart
+++ b/tests/language/if_null/assignment_behavior_test.dart
@@ -123,6 +123,8 @@
     finalOne ??= null;
 //  ^^^^^^^^
 // [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_FINAL
+// [cfe] Operand of null-aware operation '??=' has type 'int' which excludes null.
+//  ^
 // [cfe] The setter 'finalOne' isn't defined for the class 'C'.
 //               ^^^^
 // [analyzer] STATIC_WARNING.DEAD_NULL_AWARE_EXPRESSION
@@ -162,6 +164,8 @@
   h.xGetValue = 1; check(1, () => h.x ??= bad(), ['h.x']);
   yGetValue = 1; check(1, () => h.x ??= y, ['h.x', 'y', 'h.x=1']);
   { var l = 1; check(1, () => l ??= bad(), []); }
+  //                          ^
+  // [cfe] Operand of null-aware operation '??=' has type 'int' which excludes null.
   //                                ^^^^^
   // [analyzer] STATIC_WARNING.DEAD_NULL_AWARE_EXPRESSION
   { var l; yGetValue = 1; check(1, () => l ??= y, ['y']); Expect.equals(1, l); }
@@ -169,6 +173,8 @@
   //             ^
   // [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_FINAL_LOCAL
   // [cfe] Can't assign to the final variable 'l'.
+  //             ^
+  // [cfe] Operand of null-aware operation '??=' has type 'int' which excludes null.
   //                   ^^^^
   // [analyzer] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
   //                   ^^^^
@@ -177,6 +183,8 @@
 //^
 // [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_TYPE
 // [cfe] Can't assign to a type literal.
+//^
+// [cfe] Operand of null-aware operation '??=' has type 'Type' which excludes null.
   h ??= null;
 //^
 // [analyzer] COMPILE_TIME_ERROR.PREFIX_IDENTIFIER_NOT_FOLLOWED_BY_DOT
diff --git a/tests/language/if_null/precedence_test.dart b/tests/language/if_null/precedence_test.dart
index eeb9570..abc0755 100644
--- a/tests/language/if_null/precedence_test.dart
+++ b/tests/language/if_null/precedence_test.dart
@@ -41,6 +41,8 @@
   // type warning if b doesn't have type bool.  An incorrect parse of
   // "a || (b ?? c)" would allow b to have any type provided that c is bool.
   falsity || 1 ?? true;
+//        ^
+// [cfe] Operand of null-aware operation '??' has type 'bool' which excludes null.
 //           ^
 // [analyzer] COMPILE_TIME_ERROR.NON_BOOL_OPERAND
 // [cfe] A value of type 'int' can't be assigned to a variable of type 'bool'.
@@ -50,6 +52,8 @@
   // An incorrect parse of "a || (b ?? c)" would result in no checked-mode
   // error.
   Expect.throwsAssertionError(() => false || null ?? true);
+  //                                      ^
+  // [cfe] Operand of null-aware operation '??' has type 'bool' which excludes null.
   //                                         ^^^^
   // [analyzer] COMPILE_TIME_ERROR.NON_BOOL_OPERAND
   // [cfe] A value of type 'Null' can't be assigned to a variable of type 'bool'.
diff --git a/tests/language/nnbd/operator_type_test.dart b/tests/language/nnbd/operator_type_test.dart
index 2885ffd..d9024fc 100644
--- a/tests/language/nnbd/operator_type_test.dart
+++ b/tests/language/nnbd/operator_type_test.dart
@@ -27,97 +27,99 @@
   _ = bq && b;
   //  ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'bool?' can't be assigned to a variable of type 'bool'.
 
   _ = b && bq;
   //       ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'bool?' can't be assigned to a variable of type 'bool'.
 
   _ = bq || b;
   //  ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'bool?' can't be assigned to a variable of type 'bool'.
 
   _ = b || bq;
   //       ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'bool?' can't be assigned to a variable of type 'bool'.
 
   _ = !bq;
   //   ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'bool?' can't be assigned to a variable of type 'bool'.
 
   _ = bq ? "a" : "b";
   //  ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'bool?' can't be assigned to a variable of type 'bool'.
 
   if (bq) {}
   //  ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'bool?' can't be assigned to a variable of type 'bool'.
 
   while (bq) {}
   //     ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'bool?' can't be assigned to a variable of type 'bool'.
 
   do {} while (bq);
   //           ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'bool?' can't be assigned to a variable of type 'bool'.
 
   for (; bq;) {}
   //     ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'bool?' can't be assigned to a variable of type 'bool'.
 
   try {
     throw bq;
     //    ^^
     // [analyzer] unspecified
-    // [cfe] unspecified
+    // [cfe] Can't throw a value of 'bool?' since it is neither dynamic nor non-nullable.
   } catch (e) {}
 
   assert(bq);
   //     ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'bool?' can't be assigned to a variable of type 'bool'.
 
   _ = [if (bq) 1];
   //       ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'bool?' can't be assigned to a variable of type 'bool'.
 
   _ = [for (; bq;) 1];
   //         ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  //          ^
+  // [cfe] A value of type 'bool?' can't be assigned to a variable of type 'bool'.
 
   Iterable<int>? iq = maybeNullable([1]);
   for (var v in iq) {}
   //            ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] The type 'Iterable<int>?' used in the 'for' loop must implement 'Iterable<dynamic>'.
 
   _ = [...iq];
+  //      ^
+  // [cfe] An expression whose value can be 'null' must be null-checked before it can be dereferenced.
   //       ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
 
   Stream<Object?> foo() async* {
     Stream<int>? sq = maybeNullable(Stream<int>.fromIterable([1]));
     await for (var v in sq) {}
     //                  ^^
     // [analyzer] unspecified
-    // [cfe] unspecified
+    // [cfe] The type 'Stream<int>?' used in the 'for' loop must implement 'Stream<dynamic>'.
 
     yield* sq;
     //     ^^
     // [analyzer] unspecified
-    // [cfe] unspecified
+    // [cfe] A value of type 'Stream<int>?' can't be assigned to a variable of type 'Stream<Object?>'.
   }
 
   foo().toList();
@@ -138,97 +140,98 @@
   _ = bq && b;
   //  ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'BQ' can't be assigned to a variable of type 'bool'.
 
   _ = b && bq;
   //       ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'BQ' can't be assigned to a variable of type 'bool'.
 
   _ = bq || b;
   //  ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'BQ' can't be assigned to a variable of type 'bool'.
 
   _ = b || bq;
   //       ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'BQ' can't be assigned to a variable of type 'bool'.
 
   _ = !bq;
   //   ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'BQ' can't be assigned to a variable of type 'bool'.
 
   _ = bq ? "a" : "b";
   //  ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'BQ' can't be assigned to a variable of type 'bool'.
 
   if (bq) {}
   //  ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'BQ' can't be assigned to a variable of type 'bool'.
 
   while (bq) {}
   //     ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'BQ' can't be assigned to a variable of type 'bool'.
 
   do {} while (bq);
   //           ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'BQ' can't be assigned to a variable of type 'bool'.
 
   for (; bq;) {}
   //     ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'BQ' can't be assigned to a variable of type 'bool'.
 
   try {
     throw bq;
     //    ^^
     // [analyzer] unspecified
-    // [cfe] unspecified
+    // [cfe] Can't throw a value of 'BQ' since it is neither dynamic nor non-nullable.
   } catch (e) {}
 
   assert(bq);
   //     ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'BQ' can't be assigned to a variable of type 'bool'.
 
   _ = [if (bq) 1];
   //       ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] A value of type 'BQ' can't be assigned to a variable of type 'bool'.
 
   _ = [for (; bq;) 1];
   //         ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  //          ^
+  // [cfe] A value of type 'BQ' can't be assigned to a variable of type 'bool'.
 
   Iterable<int>? iq = maybeNullable([1]);
   for (var v in iq) {}
   //            ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] The type 'Iterable<int>?' used in the 'for' loop must implement 'Iterable<dynamic>'.
 
   _ = [...iq];
   //      ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] An expression whose value can be 'null' must be null-checked before it can be dereferenced.
 
   Stream<Object?> foo<SQ extends Stream<Object?>?>() async* {
     SQ sq = maybeNotNullable<SQ>(Stream<int>.fromIterable([1]));
     await for (var v in sq) {}
     //                  ^^
     // [analyzer] unspecified
-    // [cfe] unspecified
+    // [cfe] The type 'Stream<Object?>?' used in the 'for' loop must implement 'Stream<dynamic>'.
 
     yield* sq;
     //     ^^
     // [analyzer] unspecified
-    // [cfe] unspecified
+    // [cfe] A value of type 'SQ' can't be assigned to a variable of type 'Stream<Object?>'.
   }
 
   foo<Stream<Object?>>().toList();
@@ -250,7 +253,7 @@
     return cq;
     //     ^^
     // [analyzer] unspecified
-    // [cfe] unspecified
+    // [cfe] A value of type 'C?' can't be returned from a function with return type 'C'.
   }
 }
 
@@ -265,38 +268,38 @@
   _ = nn ?? 1;
   //  ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] Operand of null-aware operation '??' has type 'int' which excludes null.
 
   _ = nn ??= 1;
   //  ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] Operand of null-aware operation '??=' has type 'int' which excludes null.
 
   _ = nn?.toRadixString(16);
   //  ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] Operand of null-aware operation '?.' has type 'int' which excludes null.
 
   _ = nn?..toRadixString(16);
   //  ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] Operand of null-aware operation '?..' has type 'int' which excludes null.
 
   _ = nn!;
   //  ^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] Operand of null-aware operation '!' has type 'int' which excludes null.
 
   List<int> nni = [1];
   _ = [...?nni];
   //       ^^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] Operand of null-aware operation '...?' has type 'List<int>' which excludes null.
 
   _ = nni?[0];
   //  ^^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] Operand of null-aware operation '?.' has type 'List<int>' which excludes null.
 
   return _;
 }
diff --git a/tests/language/nnbd/resolution/question_question_lub_test.dart b/tests/language/nnbd/resolution/question_question_lub_test.dart
index 73dab4a..beae0f8 100644
--- a/tests/language/nnbd/resolution/question_question_lub_test.dart
+++ b/tests/language/nnbd/resolution/question_question_lub_test.dart
@@ -17,14 +17,20 @@
   (nullableInt ?? nullableInt) + 1;
 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 // [analyzer] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
-// [cfe] unspecified
+//                             ^
+// [cfe] Operator '+' cannot be called on 'int?' because it is potentially null.
   (nonNullInt ?? nullableInt) + 1;
-//               ^^^^^^^^^^^
-// [analyzer] STATIC_WARNING.DEAD_NULL_AWARE_EXPRESSION
 //^^^^^^^^^^^^^^^^^^^^^^^^^^^
 // [analyzer] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
-// [cfe] unspecified
+// ^
+// [cfe] Operand of null-aware operation '??' has type 'int' which excludes null.
+//               ^^^^^^^^^^^
+// [analyzer] STATIC_WARNING.DEAD_NULL_AWARE_EXPRESSION
+//                            ^
+// [cfe] Operator '+' cannot be called on 'int?' because it is potentially null.
   (nonNullInt ?? nonNullInt) + 1;
+// ^
+// [cfe] Operand of null-aware operation '??' has type 'int' which excludes null.
 //               ^^^^^^^^^^
 // [analyzer] STATIC_WARNING.DEAD_NULL_AWARE_EXPRESSION
 }
diff --git a/tests/language/nnbd/syntax/class_member_declarations_error_test.dart b/tests/language/nnbd/syntax/class_member_declarations_error_test.dart
index d06b113..607e46f 100644
--- a/tests/language/nnbd/syntax/class_member_declarations_error_test.dart
+++ b/tests/language/nnbd/syntax/class_member_declarations_error_test.dart
@@ -8,11 +8,13 @@
   static late x1;
   //     ^^^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  //          ^
+  // [cfe] Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
   static late x5 = 0;
   //     ^^^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  //          ^
+  // [cfe] Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
 
   static final late x9;
   //           ^^^^
@@ -32,15 +34,18 @@
   // [cfe] The modifier 'late' should be before the modifier 'final'.
   //                        ^^^^
   // [analyzer] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
+  // [cfe] A value of type 'Null' can't be assigned to a variable of type 'A'.
 
   covariant late x15;
   //        ^^^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  //             ^
+  // [cfe] Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
   covariant late x16 = '';
   //        ^^^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  //             ^
+  // [cfe] Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
 
   late covariant var x17;
   //   ^^^^^^^^^
@@ -56,12 +61,14 @@
   // [cfe] The modifier 'covariant' should be before the modifier 'late'.
   //             ^^^
   // [analyzer] SYNTACTIC_ERROR.MISSING_CONST_FINAL_VAR_OR_TYPE
+  // [cfe] Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
   late covariant x20 = '';
   //   ^^^^^^^^^
   // [analyzer] SYNTACTIC_ERROR.MODIFIER_OUT_OF_ORDER
   // [cfe] The modifier 'covariant' should be before the modifier 'late'.
   //             ^^^
   // [analyzer] SYNTACTIC_ERROR.MISSING_CONST_FINAL_VAR_OR_TYPE
+  // [cfe] Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
   
   covariant var late x21;
   //            ^^^^
@@ -78,6 +85,7 @@
   // [cfe] Expected ';' after this.
   //               ^^^^
   // [analyzer] SYNTACTIC_ERROR.EXPECTED_TOKEN
+  // [cfe] Field 'late' should be initialized because its type 'double' doesn't allow null.
   //                    ^^^
   // [analyzer] SYNTACTIC_ERROR.MISSING_CONST_FINAL_VAR_OR_TYPE
   // [cfe] Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
@@ -97,11 +105,11 @@
   late x25;
   //   ^^^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
   late x29 = 0;
   //   ^^^^
   // [analyzer] unspecified
-  // [cfe] unspecified
+  // [cfe] Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
 
   final late x33;
   //    ^^^^
@@ -160,7 +168,7 @@
       required p2 = null,
       //       ^^
       // [analyzer] COMPILE_TIME_ERROR.DEFAULT_VALUE_ON_REQUIRED_PARAMETER
-      // [cfe] unspecified
+      // [cfe] Named parameter 'p2' is required and can't have a default value.
       required covariant p3,
       required covariant int p4,
   });
diff --git a/tests/language/nnbd/syntax/nullable_type_ambiguous_test.dart b/tests/language/nnbd/syntax/nullable_type_ambiguous_test.dart
index 753cff9..23565da 100644
--- a/tests/language/nnbd/syntax/nullable_type_ambiguous_test.dart
+++ b/tests/language/nnbd/syntax/nullable_type_ambiguous_test.dart
@@ -37,6 +37,8 @@
   // { a is bool ?? true : 3 } is parsed as a map literal { ((a is bool) ?? true) : 3 }.
   a = true;
   var x5 = {a is bool ?? true : 3};
+  //          ^
+  // [cfe] Operand of null-aware operation '??' has type 'bool' which excludes null.
   //                     ^^^^
   // [analyzer] STATIC_WARNING.DEAD_NULL_AWARE_EXPRESSION
   Expect.type<Map<dynamic, dynamic>>(x5);
diff --git a/tests/language/null_aware/access_test.dart b/tests/language/null_aware/access_test.dart
index 4ee967e..224a794 100644
--- a/tests/language/null_aware/access_test.dart
+++ b/tests/language/null_aware/access_test.dart
@@ -26,6 +26,8 @@
   // e1?.id is equivalent to ((x) => x == null ? null : x.id)(e1).
   Expect.equals(null, nullC()?.v);
   Expect.equals(1, new C(1)?.v);
+  //                   ^
+  // [cfe] Operand of null-aware operation '?.' has type 'C' which excludes null.
   //                       ^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
 
@@ -35,6 +37,8 @@
 
   // The static type of e1?.d is the static type of e1.id.
   { int? i = new C(1)?.v; Expect.equals(1, i); }
+  //             ^
+  // [cfe] Operand of null-aware operation '?.' has type 'C' which excludes null.
   //                 ^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
   { String? s = new C(null)?.v; Expect.equals(null, s); }
@@ -42,6 +46,8 @@
   // [analyzer] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
   //                ^
   // [cfe] A value of type 'int?' can't be assigned to a variable of type 'String?'.
+  //                ^
+  // [cfe] Operand of null-aware operation '?.' has type 'C' which excludes null.
   //                       ^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
   { C.staticInt = 1; int? i = C?.staticInt; Expect.equals(1, i); }
diff --git a/tests/language/null_aware/assignment_test.dart b/tests/language/null_aware/assignment_test.dart
index 79f566c..112b0a6 100644
--- a/tests/language/null_aware/assignment_test.dart
+++ b/tests/language/null_aware/assignment_test.dart
@@ -49,6 +49,8 @@
   // e1?.v = e2 is equivalent to ((x) => x == null ? null : x.v = e2)(e1).
   Expect.equals(null, nullC()?.v = bad());
   { C c = new C(1); Expect.equals(2, c?.v = 2); Expect.equals(2, c.v); }
+  //                                 ^
+  // [cfe] Operand of null-aware operation '?.' has type 'C' which excludes null.
   //                                  ^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
 
@@ -61,7 +63,6 @@
   { D? d = new D(new E()); E e = new G(); F? f = (d?.v = e); }
   //                                              ^^^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
-  //                                              ^
   // [cfe] A value of type 'E?' can't be assigned to a variable of type 'F?'.
   { D.staticE = new E(); G g = new G(); F? f = (D?.staticE = g); Expect.identical(f, g); }
   { h.D.staticE = new h.E(); h.G g = new h.G(); h.F? f = (h.D?.staticE = g); Expect.identical(f, g); }
@@ -83,6 +84,8 @@
   // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_SETTER
   // [cfe] The setter 'bad' isn't defined for the class 'C'.
   { B b = new C(1); Expect.equals(2, b?.v = 2); }
+  //                                 ^
+  // [cfe] Operand of null-aware operation '?.' has type 'B' which excludes null.
   //                                  ^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
   //                                    ^
@@ -92,6 +95,8 @@
   // e1?.v op= e2 is equivalent to ((x) => x?.v = x.v op e2)(e1).
   Expect.equals(null, nullC()?.v += bad());
   { C c = new C(1); Expect.equals(3, c?.v += 2); Expect.equals(3, c.v); }
+  //                                 ^
+  // [cfe] Operand of null-aware operation '?.' has type 'C' which excludes null.
   //                                  ^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
 
@@ -100,6 +105,8 @@
 
   // The static type of e1?.v op= e2 is the static type of e1.v op e2.
   { D d = new D(new E()); F? f = (d?.v += 1); Expect.identical(d.v, f); }
+  //                              ^
+  // [cfe] Operand of null-aware operation '?.' has type 'D' which excludes null.
   //                               ^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
   { D.staticE = new E(); F? f = (D?.staticE += 1); Expect.identical(D.staticE, f); }
@@ -113,6 +120,8 @@
   // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_SETTER
   // [cfe] The setter 'bad' isn't defined for the class 'C'.
   { B b = new C(1); b?.v += 2; }
+  //                ^
+  // [cfe] Operand of null-aware operation '?.' has type 'B' which excludes null.
   //                 ^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
   //                   ^
@@ -122,6 +131,8 @@
   // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_SETTER
   // [cfe] The setter 'v' isn't defined for the class 'B'.
   { D d = new D(new E()); F? f = (d?.v += nullC()); }
+  //                              ^
+  // [cfe] Operand of null-aware operation '?.' has type 'D' which excludes null.
   //                               ^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
   //                                      ^^^^^^^
@@ -130,8 +141,9 @@
   { D d = new D(new E()); H? h = (d?.v += 1); }
   //                              ^^^^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
-  //                              ^
   // [cfe] A value of type 'G?' can't be assigned to a variable of type 'H?'.
+  //                              ^
+  // [cfe] Operand of null-aware operation '?.' has type 'D' which excludes null.
   //                               ^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
   { D.staticE = new E(); F? f = (D?.staticE += nullC()); }
diff --git a/tests/language/spread_collections/null_spread_test.dart b/tests/language/spread_collections/null_spread_test.dart
index 777378d..aad1331 100644
--- a/tests/language/spread_collections/null_spread_test.dart
+++ b/tests/language/spread_collections/null_spread_test.dart
@@ -21,6 +21,8 @@
   var l3 = [...?myNever];
   //        ^^^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
+  //            ^
+  // [cfe] Operand of null-aware operation '...?' has type 'Never' which excludes null.
   List<Never> l3b = l3;
   var s1 = {...?x, if (false) throw 1};
   Set<Never> s1b = s1;
@@ -29,6 +31,8 @@
   var s3 = {...?myNever, if (false) throw 1};
   //        ^^^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
+  //            ^
+  // [cfe] Operand of null-aware operation '...?' has type 'Never' which excludes null.
   Set<Never> s3b = s3;
   var m1 = {...?x, if (false) throw 1: throw 1};
   Map<Never, Never> m1b = m1;
@@ -37,6 +41,8 @@
   var m3 = {...?myNever, if (false) throw 1: throw 1};
   //        ^^^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
+  //            ^
+  // [cfe] Operand of null-aware operation '...?' has type 'Never' which excludes null.
   Map<Never, Never> m3b = m3;
 
   // Test non-empty collection of `Never` and `int`.
@@ -47,6 +53,8 @@
   var li3 = [...?myNever, 1];
   //         ^^^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
+  //             ^
+  // [cfe] Operand of null-aware operation '...?' has type 'Never' which excludes null.
   List<int> li3b = li3;
   var si1 = {1, ...?x};
   Set<int> si1b = si1;
@@ -55,6 +63,8 @@
   var si3 = {1, ...?myNever};
   //            ^^^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
+  //                ^
+  // [cfe] Operand of null-aware operation '...?' has type 'Never' which excludes null.
   Set<int> si3b = si3;
   var mi1 = {1: 1, ...?x};
   Map<int, int> mi1b = mi1;
@@ -63,6 +73,8 @@
   var mi3 = {1: 1, ...?myNever};
   //               ^^^^
   // [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
+  //                   ^
+  // [cfe] Operand of null-aware operation '...?' has type 'Never' which excludes null.
   Map<int, int> mi3b = mi3;
 }
 
diff --git a/tests/language/string/substring_test.dart b/tests/language/string/substring_test.dart
index 6f33829..6d7943f 100644
--- a/tests/language/string/substring_test.dart
+++ b/tests/language/string/substring_test.dart
@@ -13,7 +13,7 @@
     // [cfe] The argument type 'double' can't be assigned to the parameter type 'int'.
     //                            ^^^
     // [analyzer] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
-    // [cfe] The argument type 'double' can't be assigned to the parameter type 'int'.
+    // [cfe] The argument type 'double' can't be assigned to the parameter type 'int?'.
     Expect.fail("Should have thrown an exception");
   } on TypeError catch (e) {
     // OK.
diff --git a/tests/language/super/conditional_operator_test.dart b/tests/language/super/conditional_operator_test.dart
index c93ed77..dcbc633 100644
--- a/tests/language/super/conditional_operator_test.dart
+++ b/tests/language/super/conditional_operator_test.dart
@@ -34,6 +34,8 @@
     //   ^^
     // [analyzer] SYNTACTIC_ERROR.INVALID_OPERATOR_QUESTIONMARK_PERIOD_FOR_SUPER
     // [cfe] The operator '?.' cannot be used with 'super' because 'super' cannot be null.
+    //     ^
+    // [cfe] Operand of null-aware operation '??=' has type 'int' which excludes null.
     //               ^
     // [analyzer] STATIC_WARNING.DEAD_NULL_AWARE_EXPRESSION
     super?.field;
@@ -47,17 +49,17 @@
     // [analyzer] SYNTACTIC_ERROR.INVALID_OPERATOR_QUESTIONMARK_PERIOD_FOR_SUPER
     // [cfe] The operator '?.' cannot be used with 'super' because 'super' cannot be null.
     -super?.field;
+//   ^^^^^^^^^^^^
+// [analyzer] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
     //    ^^
     // [analyzer] SYNTACTIC_ERROR.INVALID_OPERATOR_QUESTIONMARK_PERIOD_FOR_SUPER
     // [cfe] The operator '?.' cannot be used with 'super' because 'super' cannot be null.
-//   ^^^^^^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
     ~super?.field;
+//   ^^^^^^^^^^^^
+// [analyzer] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
     //    ^^
     // [analyzer] SYNTACTIC_ERROR.INVALID_OPERATOR_QUESTIONMARK_PERIOD_FOR_SUPER
     // [cfe] The operator '?.' cannot be used with 'super' because 'super' cannot be null.
-//   ^^^^^^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
     !super?.field;
 //   ^^^^^^^^^^^^
 // [analyzer] COMPILE_TIME_ERROR.NON_BOOL_NEGATION_EXPRESSION
diff --git a/tests/language/unsorted/external_test.dart b/tests/language/unsorted/external_test.dart
index 12d6306c..00c7f42 100644
--- a/tests/language/unsorted/external_test.dart
+++ b/tests/language/unsorted/external_test.dart
@@ -37,6 +37,8 @@
   //  ^^^^^^^^
   // [analyzer] SYNTACTIC_ERROR.EXPECTED_TOKEN
   // [cfe] Expected ';' after this.
+  //  ^
+  // [cfe] Field 'external' should be initialized because its type 'int' doesn't allow null.
   //           ^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER
 
@@ -67,13 +69,13 @@
 }
 
 external int t06(int i) { return 1; }
-// [error line 69, column 1, length 8]
+// [error line 71, column 1, length 8]
 // [analyzer] SYNTACTIC_ERROR.EXTERNAL_METHOD_WITH_BODY
 // [cfe] An external or native method can't have a body.
 //                      ^
 // [cfe] An external or native method can't have a body.
 external int t07(int i) => i + 1;
-// [error line 75, column 1, length 8]
+// [error line 77, column 1, length 8]
 // [analyzer] SYNTACTIC_ERROR.EXTERNAL_METHOD_WITH_BODY
 // [cfe] An external or native method can't have a body.
 //                         ^
diff --git a/tests/language/variable/duplicate_field_with_initializer_test.dart b/tests/language/variable/duplicate_field_with_initializer_test.dart
index 68bd560..929fc64 100644
--- a/tests/language/variable/duplicate_field_with_initializer_test.dart
+++ b/tests/language/variable/duplicate_field_with_initializer_test.dart
@@ -3,9 +3,9 @@
 // BSD-style license that can be found in the LICENSE file.
 
 class Repeated {
-  var a = '', b = 'Something';
-  var b;
-  //  ^
+  dynamic a = '', b = 'Something';
+  dynamic b;
+  //      ^
   // [analyzer] COMPILE_TIME_ERROR.DUPLICATE_DEFINITION
   // [cfe] 'b' is already declared in this scope.
 }
diff --git a/tools/VERSION b/tools/VERSION
index a242d7e..255ff78 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 10
 PATCH 0
-PRERELEASE 127
+PRERELEASE 128
 PRERELEASE_PATCH 0
\ No newline at end of file
