diff --git a/pkg/analysis_server/lib/src/plugin/plugin_manager.dart b/pkg/analysis_server/lib/src/plugin/plugin_manager.dart
index 65d00d4..ba63c49 100644
--- a/pkg/analysis_server/lib/src/plugin/plugin_manager.dart
+++ b/pkg/analysis_server/lib/src/plugin/plugin_manager.dart
@@ -1072,8 +1072,10 @@
       return false;
     }
     channel = info._createChannel();
-    await channel.listen(handleResponse, handleNotification,
-        onDone: handleOnDone, onError: handleOnError);
+    // TODO(brianwilkerson) Determine if await is necessary, if so, change the
+    // return type of `channel.listen` to `Future<void>`.
+    await (channel.listen(handleResponse, handleNotification,
+        onDone: handleOnDone, onError: handleOnError) as dynamic);
     if (channel == null) {
       // If there is an error when starting the isolate, the channel will invoke
       // handleOnDone, which will cause `channel` to be set to `null`.
diff --git a/pkg/analysis_server/lib/src/server/http_server.dart b/pkg/analysis_server/lib/src/server/http_server.dart
index c5cff7d..783cb9c 100644
--- a/pkg/analysis_server/lib/src/server/http_server.dart
+++ b/pkg/analysis_server/lib/src/server/http_server.dart
@@ -136,7 +136,9 @@
     if (getHandler == null) {
       getHandler = new DiagnosticsSite(socketServer, _printBuffer);
     }
-    await getHandler.handleGetRequest(request);
+    // TODO(brianwilkerson) Determine if await is necessary, if so, change the
+    // return type of [AbstractGetHandler.handleGetRequest] to `Future<void>`.
+    await (getHandler.handleGetRequest(request) as dynamic);
   }
 
   /**
diff --git a/pkg/analysis_server/lib/src/status/pages.dart b/pkg/analysis_server/lib/src/status/pages.dart
index f9c7e06..e727bf5 100644
--- a/pkg/analysis_server/lib/src/status/pages.dart
+++ b/pkg/analysis_server/lib/src/status/pages.dart
@@ -38,7 +38,9 @@
     } else {
       buf.writeln('<div>');
     }
-    await gen();
+    // TODO(brianwilkerson) Determine if await is necessary, if so, change the
+    // return type of [gen] to `Future<void>`.
+    await (gen() as dynamic);
     buf.writeln('</div>');
   }
 
@@ -60,7 +62,9 @@
     // TODO(brianwilkerson) Determine whether this await is necessary.
     await null;
     buf.clear();
-    await generatePage(params);
+    // TODO(brianwilkerson) Determine if await is necessary, if so, change the
+    // return type of [generatePage] to `Future<void>`.
+    await (generatePage(params) as dynamic);
     return buf.toString();
   }
 
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_context.dart b/pkg/analyzer/lib/src/dart/analysis/library_context.dart
index 5d5c629..fe326f3 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_context.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_context.dart
@@ -93,7 +93,7 @@
       }
 
       logger.run('Append library files', () {
-        return appendLibraryFiles(targetLibrary);
+        appendLibraryFiles(targetLibrary);
       });
 
       Set<String> libraryUrisToLink = new Set<String>();
diff --git a/pkg/analyzer_cli/lib/src/build_mode.dart b/pkg/analyzer_cli/lib/src/build_mode.dart
index d83ab5e..b072546 100644
--- a/pkg/analyzer_cli/lib/src/build_mode.dart
+++ b/pkg/analyzer_cli/lib/src/build_mode.dart
@@ -144,7 +144,7 @@
     errorSink = errorBuffer;
     outSink = outBuffer;
     exitHandler = (int exitCode) {
-      return throw new StateError('Exit called: $exitCode');
+      throw new StateError('Exit called: $exitCode');
     };
     await super.run();
   }
diff --git a/pkg/dev_compiler/test/sourcemap/common.dart b/pkg/dev_compiler/test/sourcemap/common.dart
index c934036..c4868c3 100644
--- a/pkg/dev_compiler/test/sourcemap/common.dart
+++ b/pkg/dev_compiler/test/sourcemap/common.dart
@@ -2,6 +2,8 @@
 // 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.
 
+import 'dart:async' show Future;
+
 import 'dart:io';
 
 import 'package:path/path.dart' as path;
@@ -19,14 +21,15 @@
 abstract class ChainContextWithCleanupHelper extends ChainContext {
   Map<TestDescription, Data> cleanupHelper = {};
 
-  void cleanUp(TestDescription description, Result result) {
+  Future<void> cleanUp(TestDescription description, Result result) {
     if (debugging() && result.outcome != Expectation.Pass) {
       print("Not cleaning up: Running in debug-mode for non-passing test.");
-      return;
+      return null;
     }
 
     Data data = cleanupHelper.remove(description);
     data?.outDir?.deleteSync(recursive: true);
+    return null;
   }
 
   bool debugging() => false;
diff --git a/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart b/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
index fc453d5..5bd77ea 100644
--- a/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
+++ b/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
@@ -5827,6 +5827,17 @@
         r"""Try removing the default value or making the parameter optional.""");
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Null> codeReturnFromVoidFunction = messageReturnFromVoidFunction;
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const MessageCode messageReturnFromVoidFunction = const MessageCode(
+    "ReturnFromVoidFunction",
+    analyzerCode: "RETURN_OF_INVALID_TYPE",
+    dart2jsCode: "*fatal*",
+    severity: Severity.errorLegacyWarning,
+    message: r"""Can't return a value from a void function.""");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
 const Code<Null> codeReturnTypeFunctionExpression =
     messageReturnTypeFunctionExpression;
 
@@ -6866,6 +6877,14 @@
         r"""Try removing the keyword 'var', or replacing it with the name of the return type.""");
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Null> codeVoidExpression = messageVoidExpression;
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const MessageCode messageVoidExpression = const MessageCode("VoidExpression",
+    severity: Severity.errorLegacyWarning,
+    message: r"""This expression has type 'void' and can't be used.""");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
 const Template<
     Message Function(
         String string,
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_expression_generator.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_expression_generator.dart
index 0b4dadd..c57370a 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_expression_generator.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_expression_generator.dart
@@ -786,8 +786,11 @@
   @override
   Expression _finish(
       Expression body, ComplexAssignmentJudgment complexAssignment) {
+    int offset = offsetForToken(token);
     return super._finish(
-        makeLet(receiverVariable, makeLet(indexVariable, body)),
+        makeLet(
+            receiverVariable, makeLet(indexVariable, body)..fileOffset = offset)
+          ..fileOffset = offset,
         complexAssignment);
   }
 
@@ -1047,7 +1050,9 @@
   @override
   Expression _finish(
       Expression body, ComplexAssignmentJudgment complexAssignment) {
-    return super._finish(makeLet(indexVariable, body), complexAssignment);
+    return super._finish(
+        makeLet(indexVariable, body)..fileOffset = offsetForToken(token),
+        complexAssignment);
   }
 
   @override
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
index 71d3160..5e966d5 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
@@ -39,6 +39,7 @@
 
 import '../fasta_codes.dart'
     show
+        messageVoidExpression,
         noLength,
         templateCantInferTypeDueToCircularity,
         templateCantUseSuperBoundedTypeForInstanceCreation,
@@ -439,7 +440,8 @@
       variable.type = inferredType;
     }
     for (var judgment in cascadeJudgments) {
-      inferrer.inferExpression(factory, judgment, const UnknownType(), false);
+      inferrer.inferExpression(factory, judgment, const UnknownType(), false,
+          isVoidAllowed: true);
     }
     inferrer.listener.cascadeExpression(this, fileOffset, inferredType);
     return null;
@@ -1176,7 +1178,8 @@
             this.variable.type,
             syntheticAssignment.rhs,
             syntheticAssignment.rhs.fileOffset,
-            template: templateForInLoopElementTypeNotAssignable);
+            template: templateForInLoopElementTypeNotAssignable,
+            isVoidAllowed: true);
         if (syntheticAssignment is PropertyAssignmentJudgment) {
           syntheticAssignment._handleWriteContravariance(
               inferrer, inferrer.thisType);
@@ -1479,6 +1482,10 @@
       inferrer.inferExpression(factory, rightJudgment, typeContext, _forceLub);
     }
     var rhsType = rightJudgment.inferredType;
+    if (rhsType is VoidType) {
+      inferrer.helper?.addProblem(
+          messageVoidExpression, rightJudgment.fileOffset, noLength);
+    }
     // - Let T = greatest closure of K with respect to `?` if K is not `_`, else
     //   UP(t0, t1)
     // - Then the inferred type is T.
@@ -2473,7 +2480,7 @@
       Factory<Expression, Statement, Initializer, Type> factory) {
     var judgment = this.judgment;
     var closureContext = inferrer.closureContext;
-    var typeContext = !closureContext.isGenerator
+    DartType typeContext = !closureContext.isGenerator
         ? closureContext.returnOrYieldContext
         : const UnknownType();
     DartType inferredType;
@@ -2487,8 +2494,8 @@
     // inferred type of the closure.  TODO(paulberry): is this what we want
     // for Fasta?
     if (judgment != null) {
-      closureContext.handleReturn(
-          inferrer, inferredType, expression, fileOffset);
+      closureContext.handleReturn(inferrer, inferredType, expression,
+          fileOffset, !identical(returnKeyword?.lexeme, "return"));
     }
     inferrer.listener
         .returnStatement(this, fileOffset, returnKeyword, null, semicolon);
@@ -3221,7 +3228,8 @@
       Factory<Expression, Statement, Initializer, Type> factory,
       kernel.Expression expression,
       DartType typeContext,
-      bool typeNeeded) {
+      bool typeNeeded,
+      {bool isVoidAllowed: false}) {
     // `null` should never be used as the type context.  An instance of
     // `UnknownType` should be used instead.
     assert(typeContext != null);
@@ -3247,7 +3255,34 @@
       // so that the type hierarchy will be simpler (which may speed up "is"
       // checks).
       expression.infer(this, factory, typeContext);
-      return expression.inferredType;
+      DartType inferredType = expression.inferredType;
+      if (inferredType is VoidType && !isVoidAllowed) {
+        TreeNode parent = expression.parent;
+        if (parent is ReturnStatement ||
+            parent is ExpressionStatement ||
+            parent is AsExpression) {
+          return inferredType;
+        } else if (parent is ForStatement &&
+            parent.updates.contains(expression)) {
+          return inferredType;
+        } else if (parent is VariableDeclaration) {
+          TreeNode grandParent = parent.parent;
+          if (grandParent is ForStatement &&
+              parent.name == null &&
+              grandParent.variables.contains(parent)) {
+            return inferredType;
+          }
+        } else if (parent is ConditionalExpression) {
+          if (parent.then == expression || parent.otherwise == expression) {
+            return inferredType;
+          }
+        } else if (parent is DeferredCheckJudgment) {
+          return inferredType;
+        }
+        helper?.addProblem(
+            messageVoidExpression, expression.fileOffset, noLength);
+      }
+      return inferredType;
     } else {
       // Encountered an expression type for which type inference is not yet
       // implemented, so just infer dynamic for now.
diff --git a/pkg/front_end/lib/src/fasta/rewrite_severity.dart b/pkg/front_end/lib/src/fasta/rewrite_severity.dart
index 3961294..936bccc 100644
--- a/pkg/front_end/lib/src/fasta/rewrite_severity.dart
+++ b/pkg/front_end/lib/src/fasta/rewrite_severity.dart
@@ -8,6 +8,15 @@
 
 Severity rewriteSeverity(
     Severity severity, msg.Code<Object> code, Uri fileUri) {
+  if (code == msg.codeVoidExpression) {
+    // TODO(ahe): Remove this special case when
+    // [https://github.com/dart-lang/dartdoc/issues/1724] is fixed.
+    String path = fileUri.path;
+    if (path.endsWith("/third_party/pkg/dartdoc/lib/src/model.dart") ||
+        path.endsWith("/third_party/pkg/dartdoc/lib/src/io_utils.dart")) {
+      return Severity.ignored;
+    }
+  }
   if (severity != Severity.ignored) return severity;
   String path = fileUri.path;
   String fastaPath = "/pkg/front_end/lib/src/fasta/";
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
index 5ded6a7b..650c384 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
@@ -68,7 +68,28 @@
 
 import '../builder/builder.dart' show PrefixBuilder;
 
-import '../fasta_codes.dart';
+import '../fasta_codes.dart'
+    show
+        LocatedMessage,
+        Message,
+        Template,
+        messageReturnFromVoidFunction,
+        messageVoidExpression,
+        noLength,
+        templateArgumentTypeNotAssignable,
+        templateImplicitCallOfNonMethod,
+        templateInvalidAssignment,
+        templateInvalidCastFunctionExpr,
+        templateInvalidCastLiteralList,
+        templateInvalidCastLiteralMap,
+        templateInvalidCastLocalFunction,
+        templateInvalidCastNewExpr,
+        templateInvalidCastStaticMethod,
+        templateInvalidCastTopLevelFunction,
+        templateMixinInferenceNoMatchingClass,
+        templateUndefinedGetter,
+        templateUndefinedMethod,
+        templateUndefinedSetter;
 
 import '../kernel/factory.dart' show Factory;
 
@@ -166,6 +187,8 @@
   /// this typing expectation in `Stream` or `Iterator`, as appropriate.
   final DartType returnOrYieldContext;
 
+  final DartType declaredReturnType;
+
   final bool _needToInferReturnType;
 
   final bool _needImplicitDowncasts;
@@ -187,6 +210,7 @@
       DartType returnContext,
       bool needToInferReturnType,
       bool needImplicitDowncasts) {
+    DartType declaredReturnType = returnContext;
     bool isAsync = asyncMarker == AsyncMarker.Async ||
         asyncMarker == AsyncMarker.AsyncStar;
     bool isGenerator = asyncMarker == AsyncMarker.SyncStar ||
@@ -204,28 +228,33 @@
           inferrer.typeSchemaEnvironment.unfutureType(returnContext));
     }
     return new ClosureContext._(isAsync, isGenerator, returnContext,
-        needToInferReturnType, needImplicitDowncasts);
+        declaredReturnType, needToInferReturnType, needImplicitDowncasts);
   }
 
-  ClosureContext._(this.isAsync, this.isGenerator, this.returnOrYieldContext,
-      this._needToInferReturnType, this._needImplicitDowncasts) {
+  ClosureContext._(
+      this.isAsync,
+      this.isGenerator,
+      this.returnOrYieldContext,
+      this.declaredReturnType,
+      this._needToInferReturnType,
+      this._needImplicitDowncasts) {
     assert(returnOrYieldContext != null);
   }
 
   /// Updates the inferred return type based on the presence of a return
   /// statement returning the given [type].
   void handleReturn(TypeInferrerImpl inferrer, DartType type,
-      Expression expression, int fileOffset) {
+      Expression expression, int fileOffset, bool isArrow) {
     if (isGenerator) return;
     _updateInferredReturnType(
-        inferrer, type, expression, fileOffset, true, false);
+        inferrer, type, expression, fileOffset, true, false, isArrow);
   }
 
   void handleYield(TypeInferrerImpl inferrer, bool isYieldStar, DartType type,
       Expression expression, int fileOffset) {
     if (!isGenerator) return;
     _updateInferredReturnType(
-        inferrer, type, expression, fileOffset, false, isYieldStar);
+        inferrer, type, expression, fileOffset, false, isYieldStar, false);
   }
 
   DartType inferReturnType(TypeInferrerImpl inferrer) {
@@ -242,8 +271,14 @@
     return _wrapAsyncOrGenerator(inferrer, inferredType);
   }
 
-  void _updateInferredReturnType(TypeInferrerImpl inferrer, DartType type,
-      Expression expression, int fileOffset, bool isReturn, bool isYieldStar) {
+  void _updateInferredReturnType(
+      TypeInferrerImpl inferrer,
+      DartType type,
+      Expression expression,
+      int fileOffset,
+      bool isReturn,
+      bool isYieldStar,
+      bool isArrow) {
     if (_needImplicitDowncasts) {
       var expectedType = isYieldStar
           ? _wrapAsyncOrGenerator(inferrer, returnOrYieldContext)
@@ -252,7 +287,10 @@
         expectedType = greatestClosure(inferrer.coreTypes, expectedType);
         if (inferrer.ensureAssignable(
                 expectedType, type, expression, fileOffset,
-                isReturnFromAsync: isAsync) !=
+                isReturnFromAsync: isAsync,
+                isReturn: isReturn,
+                declaredReturnType: declaredReturnType,
+                isArrow: isArrow) !=
             null) {
           type = expectedType;
         }
@@ -568,9 +606,23 @@
   /// [expectedType], and inserts an implicit downcast if appropriate.
   Expression ensureAssignable(DartType expectedType, DartType actualType,
       Expression expression, int fileOffset,
-      {bool isReturnFromAsync = false,
+      {bool isReturnFromAsync: false,
+      bool isReturn: false,
+      bool isVoidAllowed,
+      bool isArrow: false,
+      DartType declaredReturnType,
       Template<Message Function(DartType, DartType)> template}) {
+    isVoidAllowed ??= isArrow;
     assert(expectedType != null);
+    if (isReturn &&
+        !isArrow &&
+        !isValidReturn(declaredReturnType, actualType, isReturnFromAsync)) {
+      TreeNode parent = expression.parent;
+      Expression errorNode = helper.wrapInCompileTimeError(
+          expression, messageReturnFromVoidFunction);
+      parent?.replaceChild(expression, errorNode);
+      return errorNode;
+    }
     expectedType = greatestClosure(coreTypes, expectedType);
 
     DartType initialExpectedType = expectedType;
@@ -587,6 +639,28 @@
         expectedType = futuredExpectedType;
       }
     }
+    if (isReturn && !isArrow) {
+      if (expectedType is VoidType) {
+        isVoidAllowed = true;
+        if (actualType is! VoidType &&
+            actualType is! DynamicType &&
+            !isNull(actualType)) {
+          // Error: not assignable.  Perform error recovery.
+          TreeNode parent = expression.parent;
+          Expression errorNode = helper.wrapInCompileTimeError(
+              expression, messageReturnFromVoidFunction);
+          parent?.replaceChild(expression, errorNode);
+          return errorNode;
+        }
+      } else {
+        DartType flattened = typeSchemaEnvironment.unfutureType(expectedType);
+        if (flattened is VoidType) {
+          isVoidAllowed = true;
+        } else {
+          isVoidAllowed = expectedType is DynamicType;
+        }
+      }
+    }
 
     // We don't need to insert assignability checks when doing top level type
     // inference since top level type inference only cares about the type that
@@ -623,6 +697,15 @@
       }
     }
 
+    if (actualType is VoidType && !isVoidAllowed) {
+      // Error: not assignable.  Perform error recovery.
+      TreeNode parent = expression.parent;
+      Expression errorNode =
+          helper.wrapInCompileTimeError(expression, messageVoidExpression);
+      parent?.replaceChild(expression, errorNode);
+      return errorNode;
+    }
+
     if (expectedType == null ||
         typeSchemaEnvironment.isSubtypeOf(actualType, expectedType)) {
       // Types are compatible.
@@ -660,6 +743,67 @@
     }
   }
 
+  bool isValidReturn(
+      DartType returnType, DartType expressionType, bool isAsync) {
+    final DartType t = returnType;
+    final DartType s = expressionType;
+    if (!isAsync) {
+      if (t is DynamicType) {
+        // * `return exp;` where `exp` has static type `S` is a valid return if:
+        //   * `T` is `dynamic`
+        return true;
+      }
+
+      if (t is VoidType) {
+        // * `return exp;` where `exp` has static type `S` is a valid return if:
+        //   * `T` is `void`
+        //   * and `S` is `void` or `dynamic` or `Null`
+        return s is VoidType || s is DynamicType || isNull(s);
+      } else {
+        // * `return exp;` where `exp` has static type `S` is a valid return if:
+        //   * `T` is not `void`
+        //   * and `S` is not `void`
+        //   * and `S` is assignable to `T`
+        return s is! VoidType;
+      }
+    }
+    final DartType flattenT = typeSchemaEnvironment.unfutureType(t);
+
+    // * `return exp;` where `exp` has static type `S` is a valid return if:
+    //   * `flatten(T)` is `dynamic` or `Null`
+    if (flattenT is DynamicType || isNull(flattenT)) return true;
+
+    // * `return exp;` where `exp` has static type `S` is a valid return if:
+    //   * `T` is `void`
+    //   * and `S` is `void`, `dynamic` or `Null`
+    if (t is VoidType) {
+      if (s is VoidType || s is DynamicType || isNull(s)) return true;
+    } else {
+      final DartType flattenS = typeSchemaEnvironment.unfutureType(s);
+      // * `return exp;` where `exp` has static type `S` is a valid return if:
+      //   * `T` is not `void`
+      //   * `flatten(T)` is `void`
+      //   * and `flatten(S)` is `void`, `dynamic` or `Null`
+      if (flattenT is VoidType) {
+        if (flattenS is VoidType ||
+            flattenS is DynamicType ||
+            isNull(flattenS)) {
+          return true;
+        }
+      }
+
+      // * `return exp;` where `exp` has static type `S` is a valid return if:
+      //   * `T` is not `void`
+      //   * and `flatten(S)` is not `void`
+      if (flattenS is! VoidType) return true;
+    }
+    return false;
+  }
+
+  bool isNull(DartType type) {
+    return type is InterfaceType && type.classNode == coreTypes.nullClass;
+  }
+
   /// Finds a member of [receiverType] called [name], and if it is found,
   /// reports it through instrumentation using [fileOffset].
   ///
@@ -1087,7 +1231,8 @@
       Factory<Expression, Statement, Initializer, Type> factory,
       kernel.Expression expression,
       DartType typeContext,
-      bool typeNeeded);
+      bool typeNeeded,
+      {bool isVoidAllowed});
 
   @override
   void inferFieldInitializer<Expression, Statement, Initializer, Type>(
diff --git a/pkg/front_end/messages.status b/pkg/front_end/messages.status
index 77ca5a3..30473ab 100644
--- a/pkg/front_end/messages.status
+++ b/pkg/front_end/messages.status
@@ -372,6 +372,7 @@
 UnterminatedString/script8: Fail
 UnterminatedToken/analyzerCode: Fail
 UnterminatedToken/example: Fail
+VoidExpression/analyzerCode: Fail
 WebLiteralCannotBeRepresentedExactly/analyzerCode: Fail
 WebLiteralCannotBeRepresentedExactly/example: Fail
 YieldAsIdentifier/example: Fail
diff --git a/pkg/front_end/messages.yaml b/pkg/front_end/messages.yaml
index 7c48b34..c47b557 100644
--- a/pkg/front_end/messages.yaml
+++ b/pkg/front_end/messages.yaml
@@ -2618,3 +2618,19 @@
   severity: ERROR
   script: |
     class Hest<X extends Y Function<Y>(Y)> {}
+
+VoidExpression:
+  template: "This expression has type 'void' and can't be used."
+  severity: ERROR_LEGACY_WARNING
+  statement: |
+    {
+      void x;
+      var y = x;
+    }
+
+ReturnFromVoidFunction:
+  template: "Can't return a value from a void function."
+  severity: ERROR_LEGACY_WARNING
+  analyzerCode: RETURN_OF_INVALID_TYPE
+  dart2jsCode: "*fatal*"
+  declaration: "void foo() { return 1; }"
diff --git a/pkg/front_end/test/incremental_load_from_dill_test.dart b/pkg/front_end/test/incremental_load_from_dill_test.dart
index 45c3553..2d2e2b7 100644
--- a/pkg/front_end/test/incremental_load_from_dill_test.dart
+++ b/pkg/front_end/test/incremental_load_from_dill_test.dart
@@ -55,8 +55,8 @@
   ];
 
   @override
-  void cleanUp(TestDescription description, Result result) {
-    cleanupHelper?.outDir?.deleteSync(recursive: true);
+  Future<void> cleanUp(TestDescription description, Result result) async {
+    await cleanupHelper?.outDir?.delete(recursive: true);
   }
 
   TestData cleanupHelper;
@@ -343,7 +343,7 @@
   }
   for (int i = 0; i < length; ++i) {
     if (a[i] != b[i]) {
-      Expect.fail("Data differs at byte ${i+1}.");
+      Expect.fail("Data differs at byte ${i + 1}.");
     }
   }
   Expect.equals(a.length, b.length);
diff --git a/pkg/front_end/testcases/expression.status b/pkg/front_end/testcases/expression.status
index 87869b0..e9ab4a8 100644
--- a/pkg/front_end/testcases/expression.status
+++ b/pkg/front_end/testcases/expression.status
@@ -1,3 +1,3 @@
-// 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.
+# 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.
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context.dart.strong.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context.dart.strong.expect
index bdd35f6..ecfd44f 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context.dart.strong.expect
@@ -5,7 +5,9 @@
 static method f() → dynamic {
   core::List<core::int> o;
   o.{core::Iterable::forEach}((core::int i) → void {
-    return i.{core::num::+}(1);
+    return let dynamic _ = null in let final dynamic #t1 = let dynamic _ = null in invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_void_context.dart:12:33: Error: Can't return a value from a void function.
+    return i /*@target=num::+*/ + 1;
+                                ^" in let final dynamic #t2 = i.{core::num::+}(1) in null;
   });
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context.dart.strong.transformed.expect
index bdd35f6..9b35c93 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context.dart.strong.transformed.expect
@@ -5,7 +5,9 @@
 static method f() → dynamic {
   core::List<core::int> o;
   o.{core::Iterable::forEach}((core::int i) → void {
-    return i.{core::num::+}(1);
+    return let<BottomType> _ = null in let final dynamic #t1 = let<BottomType> _ = null in invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_void_context.dart:12:33: Error: Can't return a value from a void function.
+    return i /*@target=num::+*/ + 1;
+                                ^" in let final core::int #t2 = i.{core::num::+}(1) in null;
   });
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.strong.expect b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.strong.expect
index f8773b2..007fd21 100644
--- a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.strong.expect
@@ -1,8 +1,16 @@
+// Errors:
+//
+// pkg/front_end/testcases/inference/infer_use_of_void_local.dart:11:26: Error: This expression has type 'void' and can't be used.
+//   var /*@type=void*/ x = f();
+//                          ^
+
 library test;
 import self as self;
 
 static method f() → void {}
 static method g() → void {
-  void x = self::f();
+  void x = let dynamic _ = null in let final dynamic #t1 = let dynamic _ = null in invalid-expression "pkg/front_end/testcases/inference/infer_use_of_void_local.dart:11:26: Error: This expression has type 'void' and can't be used.
+  var /*@type=void*/ x = f();
+                         ^" in let final dynamic #t2 = self::f() in null;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.strong.transformed.expect
index f8773b2..b7f9b2f 100644
--- a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.strong.transformed.expect
@@ -1,8 +1,16 @@
+// Errors:
+//
+// pkg/front_end/testcases/inference/infer_use_of_void_local.dart:11:26: Error: This expression has type 'void' and can't be used.
+//   var /*@type=void*/ x = f();
+//                          ^
+
 library test;
 import self as self;
 
 static method f() → void {}
 static method g() → void {
-  void x = self::f();
+  void x = let<BottomType> _ = null in let final dynamic #t1 = let<BottomType> _ = null in invalid-expression "pkg/front_end/testcases/inference/infer_use_of_void_local.dart:11:26: Error: This expression has type 'void' and can't be used.
+  var /*@type=void*/ x = f();
+                         ^" in let final void #t2 = self::f() in null;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_variable_void.dart.strong.expect b/pkg/front_end/testcases/inference/infer_variable_void.dart.strong.expect
index 3bfd2e6..2464498 100644
--- a/pkg/front_end/testcases/inference/infer_variable_void.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/infer_variable_void.dart.strong.expect
@@ -1,3 +1,9 @@
+// Errors:
+//
+// pkg/front_end/testcases/inference/infer_variable_void.dart:9:55: Error: This expression has type 'void' and can't be used.
+// var /*@topType=void*/ x = /*info:USE_OF_VOID_RESULT*/ f();
+//                                                       ^
+
 library test;
 import self as self;
 
diff --git a/pkg/front_end/testcases/inference/infer_variable_void.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/infer_variable_void.dart.strong.transformed.expect
index 3bfd2e6..2464498 100644
--- a/pkg/front_end/testcases/inference/infer_variable_void.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_variable_void.dart.strong.transformed.expect
@@ -1,3 +1,9 @@
+// Errors:
+//
+// pkg/front_end/testcases/inference/infer_variable_void.dart:9:55: Error: This expression has type 'void' and can't be used.
+// var /*@topType=void*/ x = /*info:USE_OF_VOID_RESULT*/ f();
+//                                                       ^
+
 library test;
 import self as self;
 
diff --git a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.strong.expect b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.strong.expect
index 0d3fd7d..eb90747 100644
--- a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.strong.expect
@@ -1,3 +1,9 @@
+// Errors:
+//
+// pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart:27:73: Error: This expression has type 'void' and can't be used.
+//   var /*@type=void*/ y = /*info:USE_OF_VOID_RESULT*/ /*@typeArgs=void*/ run(
+//                                                                         ^
+
 library test;
 import self as self;
 import "dart:core" as core;
@@ -17,7 +23,9 @@
     core::print("running");
   }
   dynamic x = self::run<dynamic>(printRunning);
-  void y = self::run<void>(printRunning);
+  void y = let dynamic _ = null in let final dynamic #t1 = let dynamic _ = null in invalid-expression "pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart:27:73: Error: This expression has type 'void' and can't be used.
+  var /*@type=void*/ y = /*info:USE_OF_VOID_RESULT*/ /*@typeArgs=void*/ run(
+                                                                        ^" in let final dynamic #t2 = self::run<void>(printRunning) in null;
   x = 123;
   x = "hi";
   y = 123;
diff --git a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.strong.transformed.expect
index 0d3fd7d..4f71280 100644
--- a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.strong.transformed.expect
@@ -1,3 +1,9 @@
+// Errors:
+//
+// pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart:27:73: Error: This expression has type 'void' and can't be used.
+//   var /*@type=void*/ y = /*info:USE_OF_VOID_RESULT*/ /*@typeArgs=void*/ run(
+//                                                                         ^
+
 library test;
 import self as self;
 import "dart:core" as core;
@@ -17,7 +23,9 @@
     core::print("running");
   }
   dynamic x = self::run<dynamic>(printRunning);
-  void y = self::run<void>(printRunning);
+  void y = let<BottomType> _ = null in let final dynamic #t1 = let<BottomType> _ = null in invalid-expression "pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart:27:73: Error: This expression has type 'void' and can't be used.
+  var /*@type=void*/ y = /*info:USE_OF_VOID_RESULT*/ /*@typeArgs=void*/ run(
+                                                                        ^" in let final void #t2 = self::run<void>(printRunning) in null;
   x = 123;
   x = "hi";
   y = 123;
diff --git a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.strong.expect b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.strong.expect
index 9a42ff3..6b4745f 100644
--- a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.strong.expect
+++ b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.strong.expect
@@ -1,3 +1,9 @@
+// Errors:
+//
+// pkg/front_end/testcases/inference_new/infer_use_of_void.dart:17:59: Error: This expression has type 'void' and can't be used.
+//     new C(). /*info:USE_OF_VOID_RESULT*/ /*@target=C::f*/ f();
+//                                                           ^
+
 library test;
 import self as self;
 import "dart:core" as core;
diff --git a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.strong.transformed.expect
index 9a42ff3..6b4745f 100644
--- a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.strong.transformed.expect
@@ -1,3 +1,9 @@
+// Errors:
+//
+// pkg/front_end/testcases/inference_new/infer_use_of_void.dart:17:59: Error: This expression has type 'void' and can't be used.
+//     new C(). /*info:USE_OF_VOID_RESULT*/ /*@target=C::f*/ f();
+//                                                           ^
+
 library test;
 import self as self;
 import "dart:core" as core;
diff --git a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.strong.expect b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.strong.expect
index 5417786..5d708e6 100644
--- a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.strong.expect
+++ b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.strong.expect
@@ -1,3 +1,9 @@
+// Errors:
+//
+// pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart:19:74: Error: This expression has type 'void' and can't be used.
+// var /*@topType=void*/ y = /*info:USE_OF_VOID_RESULT*/ /*@typeArgs=void*/ run(
+//                                                                          ^
+
 library test;
 import self as self;
 import "dart:core" as core;
diff --git a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.strong.transformed.expect
index 5417786..5d708e6 100644
--- a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.strong.transformed.expect
@@ -1,3 +1,9 @@
+// Errors:
+//
+// pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart:19:74: Error: This expression has type 'void' and can't be used.
+// var /*@topType=void*/ y = /*info:USE_OF_VOID_RESULT*/ /*@typeArgs=void*/ run(
+//                                                                          ^
+
 library test;
 import self as self;
 import "dart:core" as core;
diff --git a/pkg/front_end/testcases/rasta/super.dart.strong.expect b/pkg/front_end/testcases/rasta/super.dart.strong.expect
index d4f9d08..f65cbcd 100644
--- a/pkg/front_end/testcases/rasta/super.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/super.dart.strong.expect
@@ -222,6 +222,10 @@
 //     use(super.m -= 42);
 //               ^
 //
+// pkg/front_end/testcases/rasta/super.dart:146:15: Error: This expression has type 'void' and can't be used.
+//     use(super.m());
+//               ^
+//
 // pkg/front_end/testcases/rasta/super.dart:147:11: Error: Too many positional arguments: 0 allowed, 1 given.
 //     super.m(87);
 //           ^
@@ -230,6 +234,10 @@
 //     use(super.m(87));
 //               ^
 //
+// pkg/front_end/testcases/rasta/super.dart:148:15: Error: This expression has type 'void' and can't be used.
+//     use(super.m(87));
+//               ^
+//
 // pkg/front_end/testcases/rasta/super.dart:149:11: Error: Too many positional arguments: 0 allowed, 1 given.
 //     super.n(87);
 //           ^
@@ -237,6 +245,10 @@
 // pkg/front_end/testcases/rasta/super.dart:150:15: Error: Too many positional arguments: 0 allowed, 1 given.
 //     use(super.n(87));
 //               ^
+//
+// pkg/front_end/testcases/rasta/super.dart:150:15: Error: This expression has type 'void' and can't be used.
+//     use(super.n(87));
+//               ^
 
 library;
 import self as self;
@@ -426,11 +438,17 @@
     super.{self::A::[]}(87).call();
     self::use(super.{self::A::[]}(87).call());
     super.{self::A::m}();
-    self::use(super.{self::A::m}());
+    self::use(let dynamic _ = null in let final dynamic #t43 = let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:146:15: Error: This expression has type 'void' and can't be used.
+    use(super.m());
+              ^" in let final dynamic #t44 = super.{self::A::m}() in null);
     super.{self::A::m}(87);
-    self::use(super.{self::A::m}(87));
+    self::use(let dynamic _ = null in let final dynamic #t45 = let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:148:15: Error: This expression has type 'void' and can't be used.
+    use(super.m(87));
+              ^" in let final dynamic #t46 = super.{self::A::m}(87) in null);
     super.{self::A::n}(87);
-    self::use(super.{self::A::n}(87));
+    self::use(let dynamic _ = null in let final dynamic #t47 = let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:150:15: Error: This expression has type 'void' and can't be used.
+    use(super.n(87));
+              ^" in let final dynamic #t48 = super.{self::A::n}(87) in null);
     super.{self::A::a} = 42;
     self::use(super.{self::A::a} = 42);
     super.{self::A::b} = 42;
@@ -450,35 +468,35 @@
     super.{self::B::i} = 42;
     self::use(super.{self::B::i} = 42);
     super.{self::A::[]=}(87, 42);
-    self::use(let final core::int #t43 = 87 in let final core::int #t44 = 42 in let final void #t45 = super.{self::A::[]=}(#t43, #t44) in #t44);
+    self::use(let final core::int #t49 = 87 in let final core::int #t50 = 42 in let final void #t51 = super.{self::A::[]=}(#t49, #t50) in #t50);
     super.m = 42;
     self::use(super.m = 42);
     super.{self::A::n} = 42;
     self::use(super.{self::A::n} = 42);
     super.{self::A::a}.{core::Object::==}(null) ?{dynamic} super.{self::A::a} = 42 : null;
-    self::use(let final dynamic #t46 = super.{self::A::a} in #t46.{core::Object::==}(null) ?{dynamic} super.{self::A::a} = 42 : #t46);
+    self::use(let final dynamic #t52 = super.{self::A::a} in #t52.{core::Object::==}(null) ?{dynamic} super.{self::A::a} = 42 : #t52);
     super.{self::B::b}.{core::Object::==}(null) ?{dynamic} super.{self::A::b} = 42 : null;
-    self::use(let final dynamic #t47 = super.{self::B::b} in #t47.{core::Object::==}(null) ?{dynamic} super.{self::A::b} = 42 : #t47);
+    self::use(let final dynamic #t53 = super.{self::B::b} in #t53.{core::Object::==}(null) ?{dynamic} super.{self::A::b} = 42 : #t53);
     super.{self::A::c}.{core::Object::==}(null) ?{dynamic} super.{self::B::c} = 42 : null;
-    self::use(let final dynamic #t48 = super.{self::A::c} in #t48.{core::Object::==}(null) ?{dynamic} super.{self::B::c} = 42 : #t48);
+    self::use(let final dynamic #t54 = super.{self::A::c} in #t54.{core::Object::==}(null) ?{dynamic} super.{self::B::c} = 42 : #t54);
     super.{self::B::d}.{core::Object::==}(null) ?{dynamic} super.{self::A::d} = 42 : null;
-    self::use(let final dynamic #t49 = super.{self::B::d} in #t49.{core::Object::==}(null) ?{dynamic} super.{self::A::d} = 42 : #t49);
+    self::use(let final dynamic #t55 = super.{self::B::d} in #t55.{core::Object::==}(null) ?{dynamic} super.{self::A::d} = 42 : #t55);
     super.{self::A::e}.{core::Object::==}(null) ?{dynamic} super.e = 42 : null;
-    self::use(let final dynamic #t50 = super.{self::A::e} in #t50.{core::Object::==}(null) ?{dynamic} super.e = 42 : #t50);
+    self::use(let final dynamic #t56 = super.{self::A::e} in #t56.{core::Object::==}(null) ?{dynamic} super.e = 42 : #t56);
     super.{self::A::f}.{core::Object::==}(null) ?{dynamic} super.f = 42 : null;
-    self::use(let final dynamic #t51 = super.{self::A::f} in #t51.{core::Object::==}(null) ?{dynamic} super.f = 42 : #t51);
+    self::use(let final dynamic #t57 = super.{self::A::f} in #t57.{core::Object::==}(null) ?{dynamic} super.f = 42 : #t57);
     super.g.{core::Object::==}(null) ?{dynamic} super.{self::A::g} = 42 : null;
-    self::use(let final dynamic #t52 = super.g in #t52.{core::Object::==}(null) ?{dynamic} super.{self::A::g} = 42 : #t52);
+    self::use(let final dynamic #t58 = super.g in #t58.{core::Object::==}(null) ?{dynamic} super.{self::A::g} = 42 : #t58);
     super.{self::A::h}.{core::Object::==}(null) ?{dynamic} super.{self::A::h} = 42 : null;
-    self::use(let final dynamic #t53 = super.{self::A::h} in #t53.{core::Object::==}(null) ?{dynamic} super.{self::A::h} = 42 : #t53);
+    self::use(let final dynamic #t59 = super.{self::A::h} in #t59.{core::Object::==}(null) ?{dynamic} super.{self::A::h} = 42 : #t59);
     super.{self::A::i}.{core::Object::==}(null) ?{dynamic} super.{self::B::i} = 42 : null;
-    self::use(let final dynamic #t54 = super.{self::A::i} in #t54.{core::Object::==}(null) ?{dynamic} super.{self::B::i} = 42 : #t54);
-    let final core::int #t55 = 87 in super.{self::A::[]}(#t55).{core::Object::==}(null) ?{dynamic} let final core::int #t56 = 42 in let final void #t57 = super.{self::A::[]=}(#t55, #t56) in #t56 : null;
-    self::use(let final core::int #t58 = 87 in let final dynamic #t59 = super.{self::A::[]}(#t58) in #t59.{core::Object::==}(null) ?{dynamic} let final core::int #t60 = 42 in let final void #t61 = super.{self::A::[]=}(#t58, #t60) in #t60 : #t59);
+    self::use(let final dynamic #t60 = super.{self::A::i} in #t60.{core::Object::==}(null) ?{dynamic} super.{self::B::i} = 42 : #t60);
+    let final core::int #t61 = 87 in super.{self::A::[]}(#t61).{core::Object::==}(null) ?{dynamic} let final core::int #t62 = 42 in let final void #t63 = super.{self::A::[]=}(#t61, #t62) in #t62 : null;
+    self::use(let final core::int #t64 = 87 in let final dynamic #t65 = super.{self::A::[]}(#t64) in #t65.{core::Object::==}(null) ?{dynamic} let final core::int #t66 = 42 in let final void #t67 = super.{self::A::[]=}(#t64, #t66) in #t66 : #t65);
     super.{self::A::m}.{core::Object::==}(null) ?{core::Object} super.m = 42 : null;
-    self::use(let final () → void #t62 = super.{self::A::m} in #t62.{core::Object::==}(null) ?{core::Object} super.m = 42 : #t62);
+    self::use(let final () → void #t68 = super.{self::A::m} in #t68.{core::Object::==}(null) ?{core::Object} super.m = 42 : #t68);
     super.{self::A::n}.{core::Object::==}(null) ?{core::Object} super.{self::A::n} = 42 : null;
-    self::use(let final () → void #t63 = super.{self::A::n} in #t63.{core::Object::==}(null) ?{core::Object} super.{self::A::n} = 42 : #t63);
+    self::use(let final () → void #t69 = super.{self::A::n} in #t69.{core::Object::==}(null) ?{core::Object} super.{self::A::n} = 42 : #t69);
     super.{self::A::a} = super.{self::A::a}.+(42);
     self::use(super.{self::A::a} = super.{self::A::a}.+(42));
     super.{self::A::b} = super.{self::B::b}.+(42);
@@ -497,21 +515,21 @@
     self::use(super.{self::A::h} = super.{self::A::h}.+(42));
     super.{self::B::i} = super.{self::A::i}.+(42);
     self::use(super.{self::B::i} = super.{self::A::i}.+(42));
-    let final core::int #t64 = 87 in super.{self::A::[]=}(#t64, super.{self::A::[]}(#t64).+(42));
-    self::use(let final core::int #t65 = 87 in let final dynamic #t66 = super.{self::A::[]}(#t65).+(42) in let final void #t67 = super.{self::A::[]=}(#t65, #t66) in #t66);
-    super.m = let final dynamic #t68 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:222:13: Error: The method '+' isn't defined for the class '() \u8594 void'.
+    let final core::int #t70 = 87 in super.{self::A::[]=}(#t70, super.{self::A::[]}(#t70).+(42));
+    self::use(let final core::int #t71 = 87 in let final dynamic #t72 = super.{self::A::[]}(#t71).+(42) in let final void #t73 = super.{self::A::[]=}(#t71, #t72) in #t72);
+    super.m = let final dynamic #t74 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:222:13: Error: The method '+' isn't defined for the class '() \u8594 void'.
 Try correcting the name to the name of an existing method, or defining a method named '+'.
     super.m += 42;
             ^";
-    self::use(super.m = let final dynamic #t69 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:223:17: Error: The method '+' isn't defined for the class '() \u8594 void'.
+    self::use(super.m = let final dynamic #t75 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:223:17: Error: The method '+' isn't defined for the class '() \u8594 void'.
 Try correcting the name to the name of an existing method, or defining a method named '+'.
     use(super.m += 42);
                 ^");
-    super.{self::A::n} = let final dynamic #t70 = super.{self::A::n} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:224:13: Error: The method '+' isn't defined for the class '() \u8594 void'.
+    super.{self::A::n} = let final dynamic #t76 = super.{self::A::n} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:224:13: Error: The method '+' isn't defined for the class '() \u8594 void'.
 Try correcting the name to the name of an existing method, or defining a method named '+'.
     super.n += 42;
             ^";
-    self::use(super.{self::A::n} = let final dynamic #t71 = super.{self::A::n} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:225:17: Error: The method '+' isn't defined for the class '() \u8594 void'.
+    self::use(super.{self::A::n} = let final dynamic #t77 = super.{self::A::n} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:225:17: Error: The method '+' isn't defined for the class '() \u8594 void'.
 Try correcting the name to the name of an existing method, or defining a method named '+'.
     use(super.n += 42);
                 ^");
@@ -533,21 +551,21 @@
     self::use(super.{self::A::h} = super.{self::A::h}.-(42));
     super.{self::B::i} = super.{self::A::i}.-(42);
     self::use(super.{self::B::i} = super.{self::A::i}.-(42));
-    let final core::int #t72 = 87 in super.{self::A::[]=}(#t72, super.{self::A::[]}(#t72).-(42));
-    self::use(let final core::int #t73 = 87 in let final dynamic #t74 = super.{self::A::[]}(#t73).-(42) in let final void #t75 = super.{self::A::[]=}(#t73, #t74) in #t74);
-    super.m = let final dynamic #t76 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:247:13: Error: The method '-' isn't defined for the class '() \u8594 void'.
+    let final core::int #t78 = 87 in super.{self::A::[]=}(#t78, super.{self::A::[]}(#t78).-(42));
+    self::use(let final core::int #t79 = 87 in let final dynamic #t80 = super.{self::A::[]}(#t79).-(42) in let final void #t81 = super.{self::A::[]=}(#t79, #t80) in #t80);
+    super.m = let final dynamic #t82 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:247:13: Error: The method '-' isn't defined for the class '() \u8594 void'.
 Try correcting the name to the name of an existing method, or defining a method named '-'.
     super.m -= 42;
             ^";
-    self::use(super.m = let final dynamic #t77 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:248:17: Error: The method '-' isn't defined for the class '() \u8594 void'.
+    self::use(super.m = let final dynamic #t83 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:248:17: Error: The method '-' isn't defined for the class '() \u8594 void'.
 Try correcting the name to the name of an existing method, or defining a method named '-'.
     use(super.m -= 42);
                 ^");
-    super.{self::A::n} = let final dynamic #t78 = super.{self::A::n} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:249:13: Error: The method '-' isn't defined for the class '() \u8594 void'.
+    super.{self::A::n} = let final dynamic #t84 = super.{self::A::n} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:249:13: Error: The method '-' isn't defined for the class '() \u8594 void'.
 Try correcting the name to the name of an existing method, or defining a method named '-'.
     super.n -= 42;
             ^";
-    self::use(super.{self::A::n} = let final dynamic #t79 = super.{self::A::n} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:250:17: Error: The method '-' isn't defined for the class '() \u8594 void'.
+    self::use(super.{self::A::n} = let final dynamic #t85 = super.{self::A::n} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/rasta/super.dart:250:17: Error: The method '-' isn't defined for the class '() \u8594 void'.
 Try correcting the name to the name of an existing method, or defining a method named '-'.
     use(super.n -= 42);
                 ^");
diff --git a/pkg/front_end/testcases/strong.status b/pkg/front_end/testcases/strong.status
index b5d4f7b..5ef2a39 100644
--- a/pkg/front_end/testcases/strong.status
+++ b/pkg/front_end/testcases/strong.status
@@ -220,3 +220,5 @@
 co19_language_metadata_syntax_t04: RuntimeError # Fasta doesn't recover well
 
 external_import: RuntimeError # The native extension to import doesn't exist. This is ok.
+
+inference/void_return_type_subtypes_dynamic: RuntimeError
diff --git a/pkg/front_end/testcases/super_rasta_copy.dart.strong.expect b/pkg/front_end/testcases/super_rasta_copy.dart.strong.expect
index b5aeddb..7ce7859 100644
--- a/pkg/front_end/testcases/super_rasta_copy.dart.strong.expect
+++ b/pkg/front_end/testcases/super_rasta_copy.dart.strong.expect
@@ -200,6 +200,10 @@
 //     use(super.m -= 42);
 //               ^
 //
+// pkg/front_end/testcases/super_rasta_copy.dart:138:15: Error: This expression has type 'void' and can't be used.
+//     use(super.m());
+//               ^
+//
 // pkg/front_end/testcases/super_rasta_copy.dart:139:11: Error: Too many positional arguments: 0 allowed, 1 given.
 //     super.m(87);
 //           ^
@@ -207,6 +211,10 @@
 // pkg/front_end/testcases/super_rasta_copy.dart:140:15: Error: Too many positional arguments: 0 allowed, 1 given.
 //     use(super.m(87));
 //               ^
+//
+// pkg/front_end/testcases/super_rasta_copy.dart:140:15: Error: This expression has type 'void' and can't be used.
+//     use(super.m(87));
+//               ^
 
 library;
 import self as self;
@@ -362,9 +370,13 @@
     super.{self::A::[]}(87).call();
     self::use(super.{self::A::[]}(87).call());
     super.{self::A::m}();
-    self::use(super.{self::A::m}());
+    self::use(let dynamic _ = null in let final dynamic #t35 = let dynamic _ = null in invalid-expression "pkg/front_end/testcases/super_rasta_copy.dart:138:15: Error: This expression has type 'void' and can't be used.
+    use(super.m());
+              ^" in let final dynamic #t36 = super.{self::A::m}() in null);
     super.{self::A::m}(87);
-    self::use(super.{self::A::m}(87));
+    self::use(let dynamic _ = null in let final dynamic #t37 = let dynamic _ = null in invalid-expression "pkg/front_end/testcases/super_rasta_copy.dart:140:15: Error: This expression has type 'void' and can't be used.
+    use(super.m(87));
+              ^" in let final dynamic #t38 = super.{self::A::m}(87) in null);
     super.{self::A::a} = 42;
     self::use(super.{self::A::a} = 42);
     super.{self::A::b} = 42;
@@ -384,31 +396,31 @@
     super.{self::B::i} = 42;
     self::use(super.{self::B::i} = 42);
     super.{self::A::[]=}(87, 42);
-    self::use(let final core::int #t35 = 87 in let final core::int #t36 = 42 in let final void #t37 = super.{self::A::[]=}(#t35, #t36) in #t36);
+    self::use(let final core::int #t39 = 87 in let final core::int #t40 = 42 in let final void #t41 = super.{self::A::[]=}(#t39, #t40) in #t40);
     super.m = 42;
     self::use(super.m = 42);
     super.{self::A::a}.{core::Object::==}(null) ?{dynamic} super.{self::A::a} = 42 : null;
-    self::use(let final dynamic #t38 = super.{self::A::a} in #t38.{core::Object::==}(null) ?{dynamic} super.{self::A::a} = 42 : #t38);
+    self::use(let final dynamic #t42 = super.{self::A::a} in #t42.{core::Object::==}(null) ?{dynamic} super.{self::A::a} = 42 : #t42);
     super.{self::B::b}.{core::Object::==}(null) ?{dynamic} super.{self::A::b} = 42 : null;
-    self::use(let final dynamic #t39 = super.{self::B::b} in #t39.{core::Object::==}(null) ?{dynamic} super.{self::A::b} = 42 : #t39);
+    self::use(let final dynamic #t43 = super.{self::B::b} in #t43.{core::Object::==}(null) ?{dynamic} super.{self::A::b} = 42 : #t43);
     super.{self::A::c}.{core::Object::==}(null) ?{dynamic} super.{self::B::c} = 42 : null;
-    self::use(let final dynamic #t40 = super.{self::A::c} in #t40.{core::Object::==}(null) ?{dynamic} super.{self::B::c} = 42 : #t40);
+    self::use(let final dynamic #t44 = super.{self::A::c} in #t44.{core::Object::==}(null) ?{dynamic} super.{self::B::c} = 42 : #t44);
     super.{self::B::d}.{core::Object::==}(null) ?{dynamic} super.{self::A::d} = 42 : null;
-    self::use(let final dynamic #t41 = super.{self::B::d} in #t41.{core::Object::==}(null) ?{dynamic} super.{self::A::d} = 42 : #t41);
+    self::use(let final dynamic #t45 = super.{self::B::d} in #t45.{core::Object::==}(null) ?{dynamic} super.{self::A::d} = 42 : #t45);
     super.{self::A::e}.{core::Object::==}(null) ?{dynamic} super.e = 42 : null;
-    self::use(let final dynamic #t42 = super.{self::A::e} in #t42.{core::Object::==}(null) ?{dynamic} super.e = 42 : #t42);
+    self::use(let final dynamic #t46 = super.{self::A::e} in #t46.{core::Object::==}(null) ?{dynamic} super.e = 42 : #t46);
     super.{self::A::f}.{core::Object::==}(null) ?{dynamic} super.f = 42 : null;
-    self::use(let final dynamic #t43 = super.{self::A::f} in #t43.{core::Object::==}(null) ?{dynamic} super.f = 42 : #t43);
+    self::use(let final dynamic #t47 = super.{self::A::f} in #t47.{core::Object::==}(null) ?{dynamic} super.f = 42 : #t47);
     super.g.{core::Object::==}(null) ?{dynamic} super.{self::A::g} = 42 : null;
-    self::use(let final dynamic #t44 = super.g in #t44.{core::Object::==}(null) ?{dynamic} super.{self::A::g} = 42 : #t44);
+    self::use(let final dynamic #t48 = super.g in #t48.{core::Object::==}(null) ?{dynamic} super.{self::A::g} = 42 : #t48);
     super.{self::A::h}.{core::Object::==}(null) ?{dynamic} super.{self::A::h} = 42 : null;
-    self::use(let final dynamic #t45 = super.{self::A::h} in #t45.{core::Object::==}(null) ?{dynamic} super.{self::A::h} = 42 : #t45);
+    self::use(let final dynamic #t49 = super.{self::A::h} in #t49.{core::Object::==}(null) ?{dynamic} super.{self::A::h} = 42 : #t49);
     super.{self::A::i}.{core::Object::==}(null) ?{dynamic} super.{self::B::i} = 42 : null;
-    self::use(let final dynamic #t46 = super.{self::A::i} in #t46.{core::Object::==}(null) ?{dynamic} super.{self::B::i} = 42 : #t46);
-    let final core::int #t47 = 87 in super.{self::A::[]}(#t47).{core::Object::==}(null) ?{dynamic} let final core::int #t48 = 42 in let final void #t49 = super.{self::A::[]=}(#t47, #t48) in #t48 : null;
-    self::use(let final core::int #t50 = 87 in let final dynamic #t51 = super.{self::A::[]}(#t50) in #t51.{core::Object::==}(null) ?{dynamic} let final core::int #t52 = 42 in let final void #t53 = super.{self::A::[]=}(#t50, #t52) in #t52 : #t51);
+    self::use(let final dynamic #t50 = super.{self::A::i} in #t50.{core::Object::==}(null) ?{dynamic} super.{self::B::i} = 42 : #t50);
+    let final core::int #t51 = 87 in super.{self::A::[]}(#t51).{core::Object::==}(null) ?{dynamic} let final core::int #t52 = 42 in let final void #t53 = super.{self::A::[]=}(#t51, #t52) in #t52 : null;
+    self::use(let final core::int #t54 = 87 in let final dynamic #t55 = super.{self::A::[]}(#t54) in #t55.{core::Object::==}(null) ?{dynamic} let final core::int #t56 = 42 in let final void #t57 = super.{self::A::[]=}(#t54, #t56) in #t56 : #t55);
     super.{self::A::m}.{core::Object::==}(null) ?{core::Object} super.m = 42 : null;
-    self::use(let final () → void #t54 = super.{self::A::m} in #t54.{core::Object::==}(null) ?{core::Object} super.m = 42 : #t54);
+    self::use(let final () → void #t58 = super.{self::A::m} in #t58.{core::Object::==}(null) ?{core::Object} super.m = 42 : #t58);
     super.{self::A::a} = super.{self::A::a}.+(42);
     self::use(super.{self::A::a} = super.{self::A::a}.+(42));
     super.{self::A::b} = super.{self::B::b}.+(42);
@@ -427,13 +439,13 @@
     self::use(super.{self::A::h} = super.{self::A::h}.+(42));
     super.{self::B::i} = super.{self::A::i}.+(42);
     self::use(super.{self::B::i} = super.{self::A::i}.+(42));
-    let final core::int #t55 = 87 in super.{self::A::[]=}(#t55, super.{self::A::[]}(#t55).+(42));
-    self::use(let final core::int #t56 = 87 in let final dynamic #t57 = super.{self::A::[]}(#t56).+(42) in let final void #t58 = super.{self::A::[]=}(#t56, #t57) in #t57);
-    super.m = let final dynamic #t59 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/super_rasta_copy.dart:208:13: Error: The method '+' isn't defined for the class '() \u8594 void'.
+    let final core::int #t59 = 87 in super.{self::A::[]=}(#t59, super.{self::A::[]}(#t59).+(42));
+    self::use(let final core::int #t60 = 87 in let final dynamic #t61 = super.{self::A::[]}(#t60).+(42) in let final void #t62 = super.{self::A::[]=}(#t60, #t61) in #t61);
+    super.m = let final dynamic #t63 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/super_rasta_copy.dart:208:13: Error: The method '+' isn't defined for the class '() \u8594 void'.
 Try correcting the name to the name of an existing method, or defining a method named '+'.
     super.m += 42;
             ^";
-    self::use(super.m = let final dynamic #t60 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/super_rasta_copy.dart:209:17: Error: The method '+' isn't defined for the class '() \u8594 void'.
+    self::use(super.m = let final dynamic #t64 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/super_rasta_copy.dart:209:17: Error: The method '+' isn't defined for the class '() \u8594 void'.
 Try correcting the name to the name of an existing method, or defining a method named '+'.
     use(super.m += 42);
                 ^");
@@ -455,13 +467,13 @@
     self::use(super.{self::A::h} = super.{self::A::h}.-(42));
     super.{self::B::i} = super.{self::A::i}.-(42);
     self::use(super.{self::B::i} = super.{self::A::i}.-(42));
-    let final core::int #t61 = 87 in super.{self::A::[]=}(#t61, super.{self::A::[]}(#t61).-(42));
-    self::use(let final core::int #t62 = 87 in let final dynamic #t63 = super.{self::A::[]}(#t62).-(42) in let final void #t64 = super.{self::A::[]=}(#t62, #t63) in #t63);
-    super.m = let final dynamic #t65 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/super_rasta_copy.dart:231:13: Error: The method '-' isn't defined for the class '() \u8594 void'.
+    let final core::int #t65 = 87 in super.{self::A::[]=}(#t65, super.{self::A::[]}(#t65).-(42));
+    self::use(let final core::int #t66 = 87 in let final dynamic #t67 = super.{self::A::[]}(#t66).-(42) in let final void #t68 = super.{self::A::[]=}(#t66, #t67) in #t67);
+    super.m = let final dynamic #t69 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/super_rasta_copy.dart:231:13: Error: The method '-' isn't defined for the class '() \u8594 void'.
 Try correcting the name to the name of an existing method, or defining a method named '-'.
     super.m -= 42;
             ^";
-    self::use(super.m = let final dynamic #t66 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/super_rasta_copy.dart:232:17: Error: The method '-' isn't defined for the class '() \u8594 void'.
+    self::use(super.m = let final dynamic #t70 = super.{self::A::m} in let dynamic _ = null in invalid-expression "pkg/front_end/testcases/super_rasta_copy.dart:232:17: Error: The method '-' isn't defined for the class '() \u8594 void'.
 Try correcting the name to the name of an existing method, or defining a method named '-'.
     use(super.m -= 42);
                 ^");
diff --git a/pkg/pkg.status b/pkg/pkg.status
index e2a1a1a..54eb793 100644
--- a/pkg/pkg.status
+++ b/pkg/pkg.status
@@ -95,6 +95,7 @@
 [ $runtime == vm ]
 analysis_server/test/benchmarks_test: Pass, Slow
 analysis_server/test/completion_test: Pass, Slow
+analysis_server/test/context_manager_test: Fail
 analysis_server/test/domain_completion_test: Pass, Slow
 analysis_server/test/edit/refactoring_test: Pass, Slow
 analysis_server/test/integration/*: Pass, Slow
@@ -113,7 +114,10 @@
 analyzer/test/file_system/physical_resource_provider_test: Pass, Fail # Issue 25472
 analyzer/test/generated/hint_code_driver_test: Pass, Slow
 analyzer/test/generated/non_error_resolver_kernel_test: Pass, Slow
+analyzer/test/generated/static_type_warning_code_kernel_test: Fail
+analyzer/test/generated/static_warning_code_kernel_test: Fail
 analyzer/test/generated/strong_mode_driver_test: Pass, Slow
+analyzer/test/generated/strong_mode_kernel_test: Fail
 analyzer/test/src/dart/analysis/driver_resolution_kernel_test: Pass, Slow
 analyzer/test/src/dart/analysis/driver_resolution_test: Pass, Slow
 analyzer/test/src/dart/analysis/driver_test: Pass, Slow
diff --git a/pkg/testing/lib/src/chain.dart b/pkg/testing/lib/src/chain.dart
index 2a82f99..53256ae 100644
--- a/pkg/testing/lib/src/chain.dart
+++ b/pkg/testing/lib/src/chain.dart
@@ -293,7 +293,7 @@
     return result.copyWithOutcome(outcome);
   }
 
-  void cleanUp(TestDescription description, Result result) {}
+  Future<void> cleanUp(TestDescription description, Result result) => null;
 }
 
 abstract class Step<I, O, C extends ChainContext> {
diff --git a/runtime/lib/convert_patch.dart b/runtime/lib/convert_patch.dart
index a2c802d..34fa1e6 100644
--- a/runtime/lib/convert_patch.dart
+++ b/runtime/lib/convert_patch.dart
@@ -621,22 +621,6 @@
   }
 
   /**
-   * Create a _NumberBuffer containing the digits from [start] to [chunkEnd].
-   *
-   * This creates a number buffer and initializes it with the part of the
-   * number literal ending the current chunk
-   */
-  void createNumberBuffer(int start) {
-    assert(start >= 0);
-    assert(start < chunkEnd);
-    int length = chunkEnd - start;
-    var buffer = new _NumberBuffer(length);
-    copyCharsToList(start, chunkEnd, buffer.list, 0);
-    buffer.length = length;
-    return buffer;
-  }
-
-  /**
    * Continues parsing a partial value.
    */
   int parsePartial(int position) {
diff --git a/runtime/observatory/tests/service/test_helper.dart b/runtime/observatory/tests/service/test_helper.dart
index c8a4111..3913854 100644
--- a/runtime/observatory/tests/service/test_helper.dart
+++ b/runtime/observatory/tests/service/test_helper.dart
@@ -334,7 +334,7 @@
 
         print('All service tests completed successfully.');
         testsDone = true;
-        await process.requestExit();
+        process.requestExit();
       });
     }, onError: (error, stackTrace) {
       if (testsDone) {
diff --git a/runtime/tests/vm/dart/byte_array_optimized_test.dart b/runtime/tests/vm/dart/byte_array_optimized_test.dart
index 763fa52..827b93c 100644
--- a/runtime/tests/vm/dart/byte_array_optimized_test.dart
+++ b/runtime/tests/vm/dart/byte_array_optimized_test.dart
@@ -24,7 +24,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -130,7 +130,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -227,7 +227,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -353,7 +353,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -460,7 +460,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -586,7 +586,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -698,7 +698,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -822,7 +822,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -928,7 +928,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1030,7 +1030,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1172,7 +1172,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1346,7 +1346,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1480,7 +1480,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1808,7 +1808,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -2054,7 +2054,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -2521,7 +2521,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -2862,7 +2862,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -3522,7 +3522,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -3956,7 +3956,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -4121,7 +4121,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
diff --git a/runtime/tests/vm/dart/byte_array_test.dart b/runtime/tests/vm/dart/byte_array_test.dart
index 903bf2b..d3dc4b2 100644
--- a/runtime/tests/vm/dart/byte_array_test.dart
+++ b/runtime/tests/vm/dart/byte_array_test.dart
@@ -22,7 +22,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -131,7 +131,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -231,7 +231,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -332,7 +332,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -461,7 +461,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -571,7 +571,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -700,7 +700,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -815,7 +815,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -942,7 +942,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1051,7 +1051,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1156,7 +1156,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return array[-1];
+      array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1566,7 +1566,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1740,7 +1740,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1874,7 +1874,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -2202,7 +2202,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -2448,7 +2448,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -2915,7 +2915,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -3256,7 +3256,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -3916,7 +3916,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -4350,7 +4350,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -4515,7 +4515,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      return view[-1];
+      view[-1];
     }, (e) {
       return e is RangeError;
     });
diff --git a/runtime/vm/object_test.cc b/runtime/vm/object_test.cc
index baf1b79..ea834ac 100644
--- a/runtime/vm/object_test.cc
+++ b/runtime/vm/object_test.cc
@@ -3857,38 +3857,38 @@
 TEST_CASE(FunctionSourceFingerprint) {
   const char* kScriptChars =
       "class A {\n"
-      "  static void test1(int a) {\n"
+      "  static test1(int a) {\n"
       "    return a > 1 ? a + 1 : a;\n"
       "  }\n"
-      "  static void test2(a) {\n"
+      "  static test2(a) {\n"
       "    return a > 1 ? a + 1 : a;\n"
       "  }\n"
-      "  static void test3(b) {\n"
+      "  static test3(b) {\n"
       "    return b > 1 ? b + 1 : b;\n"
       "  }\n"
-      "  static void test4(b) {\n"
+      "  static test4(b) {\n"
       "    return b > 1 ? b - 1 : b;\n"
       "  }\n"
-      "  static void test5(b) {\n"
+      "  static test5(b) {\n"
       "    return b > 1 ? b - 2 : b;\n"
       "  }\n"
-      "  void test6(int a) {\n"
+      "  test6(int a) {\n"
       "    return a > 1 ? a + 1 : a;\n"
       "  }\n"
       "}\n"
       "class B {\n"
-      "  static void /* Different declaration style. */\n"
+      "  static /* Different declaration style. */\n"
       "  test1(int a) {\n"
       "    /* Returns a + 1 for a > 1, a otherwise. */\n"
       "    return a > 1 ?\n"
       "        a + 1 :\n"
       "        a;\n"
       "  }\n"
-      "  static void test5(b) {\n"
+      "  static test5(b) {\n"
       "    return b > 1 ?\n"
       "        b - 2 : b;\n"
       "  }\n"
-      "  void test6(int a) {\n"
+      "  test6(int a) {\n"
       "    return a > 1 ? a + 1 : a;\n"
       "  }\n"
       "}";
diff --git a/samples/sample_extension/test/sample_extension_test_helper.dart b/samples/sample_extension/test/sample_extension_test_helper.dart
index 72819b9..157942c 100644
--- a/samples/sample_extension/test/sample_extension_test_helper.dart
+++ b/samples/sample_extension/test/sample_extension_test_helper.dart
@@ -85,6 +85,6 @@
       await run(Platform.executable, args);
     }
   } finally {
-    await tempDirectory.deleteSync(recursive: true);
+    tempDirectory.deleteSync(recursive: true);
   }
 }
diff --git a/tests/co19/co19-kernel.status b/tests/co19/co19-kernel.status
index a716a8e..3cc75c9 100644
--- a/tests/co19/co19-kernel.status
+++ b/tests/co19/co19-kernel.status
@@ -11,7 +11,6 @@
 Language/Functions/Formal_Parameters/Optional_Formals/default_value_t02: MissingCompileTimeError
 Language/Mixins/Mixin_Application/syntax_t21: CompileTimeError
 Language/Types/Type_Void/syntax_t08: MissingCompileTimeError
-Language/Types/Type_Void/syntax_t09: MissingCompileTimeError
 LayoutTests/*: Skip # TODO(ahe): Make dart:html available.
 LibTest/collection/Maps/*: Skip # Maps class no longer exists.
 LibTest/html/*: Skip # TODO(ahe): Make dart:html available.
@@ -582,6 +581,8 @@
 Language/Expressions/Lists/static_type_t05: CompileTimeError
 Language/Expressions/Lists/value_of_a_constant_list_t02: CompileTimeError
 Language/Expressions/Logical_Boolean_Expressions/evaluation_form_and_t01: CompileTimeError
+Language/Expressions/Logical_Boolean_Expressions/evaluation_form_and_t02: CompileTimeError
+Language/Expressions/Logical_Boolean_Expressions/evaluation_form_or_t02: CompileTimeError
 Language/Expressions/Logical_Boolean_Expressions/static_type_t02: CompileTimeError
 Language/Expressions/Logical_Boolean_Expressions/syntax_t01: CompileTimeError
 Language/Expressions/Logical_Boolean_Expressions/syntax_t10/01: CompileTimeError
@@ -895,6 +896,7 @@
 Language/Functions/async_return_type_t01: CompileTimeError
 Language/Functions/generator_return_type_t01: CompileTimeError
 Language/Functions/generator_return_type_t02: CompileTimeError
+Language/Functions/implicit_return_t01: CompileTimeError
 Language/Functions/syntax_t01: CompileTimeError
 Language/Functions/syntax_t36: CompileTimeError
 Language/Functions/syntax_t37: CompileTimeError
@@ -915,6 +917,7 @@
 Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/inheritance_t04: CompileTimeError
 Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/inheritance_t05: CompileTimeError
 Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/inheritance_t07: CompileTimeError
+Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/not_overriden_members_t01: CompileTimeError
 Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/not_overriden_members_t02: CompileTimeError
 Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/same_name_getters_type_t03: CompileTimeError
 Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/same_name_getters_type_t04: CompileTimeError
@@ -1024,6 +1027,7 @@
 Language/Statements/Continue/control_transfer_t09: CompileTimeError
 Language/Statements/Continue/label_t07: MissingCompileTimeError
 Language/Statements/Do/condition_type_t01: CompileTimeError
+Language/Statements/Do/condition_type_t02: CompileTimeError
 Language/Statements/Do/condition_type_t03: CompileTimeError
 Language/Statements/Do/execution_t03: CompileTimeError
 Language/Statements/Expression_Statements/syntax_t01: CompileTimeError
@@ -1121,8 +1125,13 @@
 Language/Types/Static_Types/malformed_type_t05: CompileTimeError
 Language/Types/Static_Types/malformed_type_t06: CompileTimeError
 Language/Types/Type_Declarations/Typedef/syntax_t01: CompileTimeError
+Language/Types/Type_Void/returning_t03: CompileTimeError
+Language/Types/Type_Void/returning_t04: CompileTimeError
+Language/Types/Type_Void/returning_t05: CompileTimeError
 Language/Types/Type_Void/syntax_t08: MissingCompileTimeError
-Language/Types/Type_Void/syntax_t09: MissingCompileTimeError
+Language/Types/Type_Void/using_t01: CompileTimeError
+Language/Types/Type_Void/using_t02: CompileTimeError
+Language/Types/Type_Void/using_t03: CompileTimeError
 Language/Variables/constant_variable_t01: CompileTimeError
 Language/Variables/constant_variable_t02: CompileTimeError
 Language/Variables/constant_variable_t03: CompileTimeError
@@ -1201,6 +1210,9 @@
 LibTest/async/Zone/registerBinaryCallback_A01_t01: CompileTimeError
 LibTest/async/Zone/registerCallback_A01_t01: CompileTimeError
 LibTest/async/Zone/registerUnaryCallback_A01_t01: CompileTimeError
+LibTest/async/Zone/runBinaryGuarded_A01_t01: CompileTimeError
+LibTest/async/Zone/runGuarded_A01_t01: CompileTimeError
+LibTest/async/Zone/runUnaryGuarded_A01_t01: CompileTimeError
 LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: CompileTimeError
 LibTest/collection/DoubleLinkedQueue/firstWhere_A02_t01: CompileTimeError
 LibTest/collection/DoubleLinkedQueue/firstWhere_A03_t01: CompileTimeError
diff --git a/tests/co19_2/co19_2-kernel.status b/tests/co19_2/co19_2-kernel.status
index ab8f393..ac635f5 100644
--- a/tests/co19_2/co19_2-kernel.status
+++ b/tests/co19_2/co19_2-kernel.status
@@ -197,11 +197,7 @@
 Language/Types/Static_Types/malformed_type_t01/04: MissingCompileTimeError
 Language/Types/Static_Types/malformed_type_t01/05: MissingCompileTimeError
 Language/Types/Static_Types/malformed_type_t01/06: MissingCompileTimeError
-Language/Types/Type_Void/returning_t03: MissingCompileTimeError
-Language/Types/Type_Void/returning_t04: MissingCompileTimeError
-Language/Types/Type_Void/returning_t05: MissingCompileTimeError
 Language/Types/Type_Void/syntax_t08: MissingCompileTimeError
-Language/Types/Type_Void/using_t01: MissingCompileTimeError
 Language/Variables/final_or_static_initialization_t02: MissingCompileTimeError
 Language/Variables/final_or_static_initialization_t03: MissingCompileTimeError
 LanguageFeatures/Instantiate-to-bound/class/custom_extends_neg_l1_t01: MissingCompileTimeError
@@ -789,3 +785,14 @@
 LibTest/typed_data/Uint8List/first_A01_t02: RuntimeError
 LibTest/typed_data/Uint8List/last_A01_t02: RuntimeError
 Utils/tests/Expect/throws_A01_t04: RuntimeError
+
+[ $fasta && $strong ]
+Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/not_overriden_members_t01: CompileTimeError
+Language/Types/Type_Void/syntax_t09: CompileTimeError
+Language/Types/Type_Void/using_t02: CompileTimeError
+Language/Types/Type_Void/using_t03: CompileTimeError
+LibTest/io/Stdin/readLineSync_A03_t01: CompileTimeError
+LibTest/io/Stdin/readLineSync_A03_t02: CompileTimeError
+LibTest/io/Stdin/readLineSync_A03_t03: CompileTimeError
+LibTest/io/Stdin/readLineSync_A03_t04: CompileTimeError
+LibTest/io/Stdin/readLineSync_A04_t01: CompileTimeError
diff --git a/tests/compiler/dart2js/codegen/strength_eq_test.dart b/tests/compiler/dart2js/codegen/strength_eq_test.dart
index 327c9cc..b75b0c5 100644
--- a/tests/compiler/dart2js/codegen/strength_eq_test.dart
+++ b/tests/compiler/dart2js/codegen/strength_eq_test.dart
@@ -17,7 +17,7 @@
   a.link = a;
   return a;
 }
-void main() {
+main() {
   var x = foo(0);
   return x == x.link;
 }
diff --git a/tests/compiler/dart2js/sourcemaps/name_test.dart b/tests/compiler/dart2js/sourcemaps/name_test.dart
index f540c8b..e1340d7 100644
--- a/tests/compiler/dart2js/sourcemaps/name_test.dart
+++ b/tests/compiler/dart2js/sourcemaps/name_test.dart
@@ -16,7 +16,7 @@
 const String SOURCE = '''
 
 var toplevelField;
-void toplevelMethod() {}
+toplevelMethod() {}
 void toplevelAnonymous() {
   var foo = () {};
 }
diff --git a/tests/compiler/dart2js_extra/inference_super_set_call_test.dart b/tests/compiler/dart2js_extra/inference_super_set_call_test.dart
index 4258546..19e1a06 100644
--- a/tests/compiler/dart2js_extra/inference_super_set_call_test.dart
+++ b/tests/compiler/dart2js_extra/inference_super_set_call_test.dart
@@ -10,9 +10,7 @@
 abstract class A {
   set x(v) {}
   set z(v) {}
-  set y(v) {
-    return 'hi';
-  }
+  set y(v) => 'hi';
 }
 
 class S extends A {
diff --git a/tests/compiler/dart2js_extra/string_interpolation_dynamic_test.dart b/tests/compiler/dart2js_extra/string_interpolation_dynamic_test.dart
index 91e9487..115f070 100644
--- a/tests/compiler/dart2js_extra/string_interpolation_dynamic_test.dart
+++ b/tests/compiler/dart2js_extra/string_interpolation_dynamic_test.dart
Binary files differ
diff --git a/tests/compiler/dart2js_extra/string_interpolation_test.dart b/tests/compiler/dart2js_extra/string_interpolation_test.dart
index beded4c..027128a 100644
--- a/tests/compiler/dart2js_extra/string_interpolation_test.dart
+++ b/tests/compiler/dart2js_extra/string_interpolation_test.dart
Binary files differ
diff --git a/tests/compiler/dart2js_native/native_closure_identity_frog_test.dart b/tests/compiler/dart2js_native/native_closure_identity_frog_test.dart
index 68c07fe..c5f5084 100644
--- a/tests/compiler/dart2js_native/native_closure_identity_frog_test.dart
+++ b/tests/compiler/dart2js_native/native_closure_identity_frog_test.dart
@@ -4,7 +4,7 @@
 
 import 'native_testing.dart';
 
-typedef void MyFunctionType();
+typedef MyFunctionType();
 
 @Native("A")
 class A {
diff --git a/tests/language_2/async_star_test.dart b/tests/language_2/async_star_test.dart
index abe7de8..fa18ff4 100644
--- a/tests/language_2/async_star_test.dart
+++ b/tests/language_2/async_star_test.dart
@@ -596,7 +596,8 @@
       f() async* {
         try {
           list.add(0);
-          yield list.add(1);
+          list.add(1);
+          yield null;
           list.add(2);
         } finally {
           exits.complete(3);
diff --git a/tests/language_2/inferrer_this_access_test.dart b/tests/language_2/inferrer_this_access_test.dart
index 2115bc3..4d1b5fc 100644
--- a/tests/language_2/inferrer_this_access_test.dart
+++ b/tests/language_2/inferrer_this_access_test.dart
@@ -25,7 +25,7 @@
 
 class C extends B {
   set hest(value) {
-    return a + 42;
+    a + 42;
   }
 }
 
diff --git a/tests/language_2/issue15606_test.dart b/tests/language_2/issue15606_test.dart
index dc3ad7a..a1ec9f9 100644
--- a/tests/language_2/issue15606_test.dart
+++ b/tests/language_2/issue15606_test.dart
@@ -6,7 +6,7 @@
 
 var a = [new Object(), 42];
 
-void bar(x, y) {}
+bar(x, y) {}
 
 main() {
   while (false) {
diff --git a/tests/language_2/language_2.status b/tests/language_2/language_2.status
index 0572c2e..0251095 100644
--- a/tests/language_2/language_2.status
+++ b/tests/language_2/language_2.status
@@ -30,45 +30,6 @@
 stacktrace_demangle_ctors_test: SkipByDesign # Names are not scrubbed.
 type_checks_in_factory_method_test: SkipByDesign # Requires checked mode.
 
-[ $fasta ]
-initializer_super_last_test/cc04: MissingCompileTimeError
-initializer_super_last_test/cc09: MissingCompileTimeError
-initializer_super_last_test/cc10: MissingCompileTimeError
-initializer_super_last_test/cc11: MissingCompileTimeError
-initializer_super_last_test/cc12: MissingCompileTimeError
-initializer_super_last_test/cc13: MissingCompileTimeError
-initializer_super_last_test/cc14: MissingCompileTimeError
-initializer_super_last_test/cc15: MissingCompileTimeError
-initializer_super_last_test/cc16: MissingCompileTimeError
-initializer_super_last_test/cc25: MissingCompileTimeError
-initializer_super_last_test/cc26: MissingCompileTimeError
-initializer_super_last_test/cc27: MissingCompileTimeError
-initializer_super_last_test/cc28: MissingCompileTimeError
-initializer_super_last_test/cc29: MissingCompileTimeError
-initializer_super_last_test/cc30: MissingCompileTimeError
-initializer_super_last_test/cc31: MissingCompileTimeError
-initializer_super_last_test/cc32: MissingCompileTimeError
-void/return_future_future_or_void_async_error0_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_future_future_or_void_sync_error0_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_future_or_future_or_void_sync_error0_test: MissingCompileTimeError
-void/return_future_or_future_or_void_sync_error1_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_future_or_void_async_error0_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_future_or_void_sync_error0_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_future_or_void_sync_error1_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_future_or_void_sync_error2_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_future_or_void_sync_error3_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_future_void_async_error0_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_future_void_async_error1_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_future_void_async_error2_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_void_async_error0_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_void_async_error1_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_void_async_error2_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_void_async_error3_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_void_async_error4_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_void_sync_error0_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_void_sync_error1_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-void/return_void_sync_error2_test: MissingCompileTimeError # https://github.com/dart-lang/sdk/issues/33218
-
 [ $compiler != app_jitk && $compiler != dartk && $compiler != dartkp && $mode == debug && $runtime == vm ]
 built_in_identifier_type_annotation_test/set: Crash # Not supported by legacy VM front-end.
 
diff --git a/tests/language_2/language_2_analyzer.status b/tests/language_2/language_2_analyzer.status
index 42452d8..c6dcd86 100644
--- a/tests/language_2/language_2_analyzer.status
+++ b/tests/language_2/language_2_analyzer.status
@@ -221,78 +221,51 @@
 vm/regress_33469_test/03: MissingCompileTimeError # http://dartbug.com/33481
 void_type_override_test/02: MissingCompileTimeError
 void_type_override_test/03: MissingCompileTimeError
-void_type_usage_test/call_conditional: MissingCompileTimeError
 void_type_usage_test/call_literal_list_init: MissingCompileTimeError
 void_type_usage_test/call_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/call_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/call_void_init: MissingCompileTimeError
-void_type_usage_test/conditional2_conditional: MissingCompileTimeError
-void_type_usage_test/conditional2_for: MissingCompileTimeError
 void_type_usage_test/conditional2_literal_list_init: MissingCompileTimeError
 void_type_usage_test/conditional2_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/conditional2_null_equals2: MissingCompileTimeError
-void_type_usage_test/conditional2_parens: MissingCompileTimeError
-void_type_usage_test/conditional2_return: MissingCompileTimeError
-void_type_usage_test/conditional2_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional2_stmt: MissingCompileTimeError
 void_type_usage_test/conditional2_void_init: MissingCompileTimeError
-void_type_usage_test/conditional3_conditional: MissingCompileTimeError
-void_type_usage_test/conditional3_for: MissingCompileTimeError
 void_type_usage_test/conditional3_literal_list_init: MissingCompileTimeError
 void_type_usage_test/conditional3_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/conditional3_null_equals2: MissingCompileTimeError
-void_type_usage_test/conditional3_parens: MissingCompileTimeError
-void_type_usage_test/conditional3_return: MissingCompileTimeError
-void_type_usage_test/conditional3_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional3_stmt: MissingCompileTimeError
 void_type_usage_test/conditional3_void_init: MissingCompileTimeError
-void_type_usage_test/conditional_conditional: MissingCompileTimeError
-void_type_usage_test/conditional_for: MissingCompileTimeError
 void_type_usage_test/conditional_literal_list_init: MissingCompileTimeError
 void_type_usage_test/conditional_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/conditional_null_equals2: MissingCompileTimeError
-void_type_usage_test/conditional_parens: MissingCompileTimeError
-void_type_usage_test/conditional_return: MissingCompileTimeError
-void_type_usage_test/conditional_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional_stmt: MissingCompileTimeError
 void_type_usage_test/conditional_void_init: MissingCompileTimeError
-void_type_usage_test/final_local_conditional: MissingCompileTimeError
 void_type_usage_test/final_local_for_in2: MissingCompileTimeError
 void_type_usage_test/final_local_literal_list_init: MissingCompileTimeError
 void_type_usage_test/final_local_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/final_local_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/final_local_void_init: MissingCompileTimeError
-void_type_usage_test/global_conditional: MissingCompileTimeError
 void_type_usage_test/global_literal_list_init: MissingCompileTimeError
 void_type_usage_test/global_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/global_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/global_void_init: MissingCompileTimeError
-void_type_usage_test/instance2_conditional: MissingCompileTimeError
 void_type_usage_test/instance2_literal_list_init: MissingCompileTimeError
 void_type_usage_test/instance2_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/instance2_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/instance2_void_init: MissingCompileTimeError
-void_type_usage_test/instance3_conditional: MissingCompileTimeError
 void_type_usage_test/instance3_literal_list_init: MissingCompileTimeError
 void_type_usage_test/instance3_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/instance3_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/instance3_void_init: MissingCompileTimeError
-void_type_usage_test/instance_conditional: MissingCompileTimeError
 void_type_usage_test/instance_literal_list_init: MissingCompileTimeError
 void_type_usage_test/instance_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/instance_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/instance_void_init: MissingCompileTimeError
-void_type_usage_test/local_conditional: MissingCompileTimeError
 void_type_usage_test/local_literal_list_init: MissingCompileTimeError
 void_type_usage_test/local_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/local_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/local_void_init: MissingCompileTimeError
-void_type_usage_test/param_conditional: MissingCompileTimeError
 void_type_usage_test/param_literal_list_init: MissingCompileTimeError
 void_type_usage_test/param_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/param_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/param_void_init: MissingCompileTimeError
-void_type_usage_test/paren_conditional: MissingCompileTimeError
 void_type_usage_test/paren_literal_list_init: MissingCompileTimeError
 void_type_usage_test/paren_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/paren_literal_map_value_init: MissingCompileTimeError
@@ -369,7 +342,6 @@
 generic_tearoff_test: CompileTimeError
 interceptor6_test: CompileTimeError
 issue13673_test: StaticWarning # Issue 31925
-issue15606_test/none: CompileTimeError # invalid use of void for dart 2
 issue31596_implement_covariant_test: CompileTimeError
 issue31596_override_test/01: CompileTimeError
 issue31596_override_test/02: CompileTimeError
diff --git a/tests/language_2/language_2_dart2js.status b/tests/language_2/language_2_dart2js.status
index 329ec9c..bbd6c3e 100644
--- a/tests/language_2/language_2_dart2js.status
+++ b/tests/language_2/language_2_dart2js.status
@@ -702,46 +702,6 @@
 vm/uint32_shift_test: RuntimeError
 vm/unaligned_integer_access_literal_index_test: RuntimeError
 vm/unaligned_integer_access_register_index_test: RuntimeError
-void_block_return_test/00: MissingCompileTimeError
-void_type_usage_test/conditional2_argument: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2_conditional: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2_dynamic_init: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2_for: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2_literal_list_init: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2_literal_map_value_init: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2_literal_map_value_init2: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2_null_equals2: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2_parens: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2_return: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional2_stmt: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2_throw: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2_void_init: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2do_while: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2for_in: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional2while: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional3_argument: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional3_conditional: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional3_dynamic_init: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional3_for: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional3_literal_list_init: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional3_literal_map_value_init: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional3_literal_map_value_init2: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional3_null_equals2: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional3_parens: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional3_return: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional3_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional3_stmt: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional3_throw: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional3_void_init: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional_do_while: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional_for_in: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/conditional_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional_while: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/global_null_equals2: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/local_null_equals2: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/param_null_equals2: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
-void_type_usage_test/paren_null_equals2: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
 wrong_number_type_arguments_test/01: MissingCompileTimeError
 wrong_number_type_arguments_test/none: Pass
 
@@ -897,10 +857,6 @@
 vm/uint32_shift_test: RuntimeError
 vm/unaligned_integer_access_literal_index_test: RuntimeError
 vm/unaligned_integer_access_register_index_test: RuntimeError
-void_block_return_test/00: MissingCompileTimeError
-void_type_usage_test/conditional2_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional3_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional_return_to_void: MissingCompileTimeError
 wrong_number_type_arguments_test/01: MissingCompileTimeError
 wrong_number_type_arguments_test/none: Pass
 
diff --git a/tests/language_2/language_2_dartdevc.status b/tests/language_2/language_2_dartdevc.status
index 1285c54..10eeba5 100644
--- a/tests/language_2/language_2_dartdevc.status
+++ b/tests/language_2/language_2_dartdevc.status
@@ -84,7 +84,6 @@
 invalid_type_argument_count_test/02: MissingCompileTimeError
 invalid_type_argument_count_test/03: MissingCompileTimeError
 invalid_type_argument_count_test/04: MissingCompileTimeError
-issue15606_test/none: CompileTimeError
 issue31596_implement_covariant_test: CompileTimeError
 issue31596_override_test/01: CompileTimeError
 issue31596_override_test/02: CompileTimeError
@@ -203,78 +202,51 @@
 void_type_function_types_test/none: CompileTimeError # Issue 30514
 void_type_override_test/02: MissingCompileTimeError
 void_type_override_test/03: MissingCompileTimeError
-void_type_usage_test/call_conditional: MissingCompileTimeError
 void_type_usage_test/call_literal_list_init: MissingCompileTimeError
 void_type_usage_test/call_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/call_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/call_void_init: MissingCompileTimeError
-void_type_usage_test/conditional2_conditional: MissingCompileTimeError
-void_type_usage_test/conditional2_for: MissingCompileTimeError
 void_type_usage_test/conditional2_literal_list_init: MissingCompileTimeError
 void_type_usage_test/conditional2_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/conditional2_null_equals2: MissingCompileTimeError
-void_type_usage_test/conditional2_parens: MissingCompileTimeError
-void_type_usage_test/conditional2_return: MissingCompileTimeError
-void_type_usage_test/conditional2_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional2_stmt: MissingCompileTimeError
 void_type_usage_test/conditional2_void_init: MissingCompileTimeError
-void_type_usage_test/conditional3_conditional: MissingCompileTimeError
-void_type_usage_test/conditional3_for: MissingCompileTimeError
 void_type_usage_test/conditional3_literal_list_init: MissingCompileTimeError
 void_type_usage_test/conditional3_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/conditional3_null_equals2: MissingCompileTimeError
-void_type_usage_test/conditional3_parens: MissingCompileTimeError
-void_type_usage_test/conditional3_return: MissingCompileTimeError
-void_type_usage_test/conditional3_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional3_stmt: MissingCompileTimeError
 void_type_usage_test/conditional3_void_init: MissingCompileTimeError
-void_type_usage_test/conditional_conditional: MissingCompileTimeError
-void_type_usage_test/conditional_for: MissingCompileTimeError
 void_type_usage_test/conditional_literal_list_init: MissingCompileTimeError
 void_type_usage_test/conditional_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/conditional_null_equals2: MissingCompileTimeError
-void_type_usage_test/conditional_parens: MissingCompileTimeError
-void_type_usage_test/conditional_return: MissingCompileTimeError
-void_type_usage_test/conditional_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional_stmt: MissingCompileTimeError
 void_type_usage_test/conditional_void_init: MissingCompileTimeError
-void_type_usage_test/final_local_conditional: MissingCompileTimeError
 void_type_usage_test/final_local_for_in2: MissingCompileTimeError
 void_type_usage_test/final_local_literal_list_init: MissingCompileTimeError
 void_type_usage_test/final_local_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/final_local_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/final_local_void_init: MissingCompileTimeError
-void_type_usage_test/global_conditional: MissingCompileTimeError
 void_type_usage_test/global_literal_list_init: MissingCompileTimeError
 void_type_usage_test/global_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/global_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/global_void_init: MissingCompileTimeError
-void_type_usage_test/instance2_conditional: MissingCompileTimeError
 void_type_usage_test/instance2_literal_list_init: MissingCompileTimeError
 void_type_usage_test/instance2_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/instance2_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/instance2_void_init: MissingCompileTimeError
-void_type_usage_test/instance3_conditional: MissingCompileTimeError
 void_type_usage_test/instance3_literal_list_init: MissingCompileTimeError
 void_type_usage_test/instance3_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/instance3_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/instance3_void_init: MissingCompileTimeError
-void_type_usage_test/instance_conditional: MissingCompileTimeError
 void_type_usage_test/instance_literal_list_init: MissingCompileTimeError
 void_type_usage_test/instance_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/instance_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/instance_void_init: MissingCompileTimeError
-void_type_usage_test/local_conditional: MissingCompileTimeError
 void_type_usage_test/local_literal_list_init: MissingCompileTimeError
 void_type_usage_test/local_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/local_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/local_void_init: MissingCompileTimeError
-void_type_usage_test/param_conditional: MissingCompileTimeError
 void_type_usage_test/param_literal_list_init: MissingCompileTimeError
 void_type_usage_test/param_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/param_literal_map_value_init: MissingCompileTimeError
 void_type_usage_test/param_void_init: MissingCompileTimeError
-void_type_usage_test/paren_conditional: MissingCompileTimeError
 void_type_usage_test/paren_literal_list_init: MissingCompileTimeError
 void_type_usage_test/paren_literal_map_key_init: MissingCompileTimeError
 void_type_usage_test/paren_literal_map_value_init: MissingCompileTimeError
@@ -545,10 +517,6 @@
 type_variable_bounds_test/06: MissingCompileTimeError
 type_variable_bounds_test/08: MissingCompileTimeError
 type_variable_bounds_test/11: MissingCompileTimeError
-void_block_return_test/00: MissingCompileTimeError
-void_type_usage_test/conditional2_return_to_void: MissingCompileTimeError, Crash
-void_type_usage_test/conditional3_return_to_void: MissingCompileTimeError, Crash
-void_type_usage_test/conditional_return_to_void: MissingCompileTimeError, Crash
 wrong_number_type_arguments_test/01: MissingCompileTimeError
 
 [ $compiler == dartdevk && $checked ]
diff --git a/tests/language_2/language_2_kernel.status b/tests/language_2/language_2_kernel.status
index cdaf95b..997c008 100644
--- a/tests/language_2/language_2_kernel.status
+++ b/tests/language_2/language_2_kernel.status
@@ -255,6 +255,23 @@
 field3_test/02: MissingCompileTimeError # Issue 33022
 generic_methods_bounds_test/01: MissingCompileTimeError # Issue 33018
 generic_methods_recursive_bound_test/02: MissingCompileTimeError # Issue 33018
+initializer_super_last_test/cc04: MissingCompileTimeError
+initializer_super_last_test/cc09: MissingCompileTimeError
+initializer_super_last_test/cc10: MissingCompileTimeError
+initializer_super_last_test/cc11: MissingCompileTimeError
+initializer_super_last_test/cc12: MissingCompileTimeError
+initializer_super_last_test/cc13: MissingCompileTimeError
+initializer_super_last_test/cc14: MissingCompileTimeError
+initializer_super_last_test/cc15: MissingCompileTimeError
+initializer_super_last_test/cc16: MissingCompileTimeError
+initializer_super_last_test/cc25: MissingCompileTimeError
+initializer_super_last_test/cc26: MissingCompileTimeError
+initializer_super_last_test/cc27: MissingCompileTimeError
+initializer_super_last_test/cc28: MissingCompileTimeError
+initializer_super_last_test/cc29: MissingCompileTimeError
+initializer_super_last_test/cc30: MissingCompileTimeError
+initializer_super_last_test/cc31: MissingCompileTimeError
+initializer_super_last_test/cc32: MissingCompileTimeError
 issue31596_super_test/02: MissingCompileTimeError
 issue31596_super_test/04: MissingCompileTimeError
 malbounded_instantiation_test/01: MissingCompileTimeError # Issue 33018
@@ -346,228 +363,6 @@
 vm/debug_break_enabled_vm_test/01: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
 vm/debug_break_enabled_vm_test/none: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
 vm/regress_27201_test: CompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 30273.
-void_type_callbacks_test/00: MissingCompileTimeError
-void_type_callbacks_test/01: MissingCompileTimeError
-void_type_function_types_test/04: MissingCompileTimeError # Issue 32804
-void_type_function_types_test/06: MissingCompileTimeError # Issue 32804
-void_type_function_types_test/08: MissingCompileTimeError # Issue 32804
-void_type_override_test/03: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_argument: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_cascade: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_conditional: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_do_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_dynamic_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_for_in: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_is: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_literal_list_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_literal_map_key_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_literal_map_key_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_literal_map_value_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_literal_map_value_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_null_dot: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_null_equals2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_return: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_throw: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_toString: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_void_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/call_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2_argument: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2_conditional: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2_dynamic_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2_for: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2_literal_list_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2_literal_map_value_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2_literal_map_value_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2_null_equals2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2_parens: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2_return: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2_stmt: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2_throw: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2_void_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2do_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2for_in: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional2while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional3_argument: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional3_conditional: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional3_dynamic_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional3_for: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional3_literal_list_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional3_literal_map_value_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional3_literal_map_value_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional3_null_equals2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional3_parens: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional3_return: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional3_stmt: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional3_throw: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional3_void_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_argument: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_conditional: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_do_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_dynamic_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_for: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_for_in: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_literal_list_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_literal_map_value_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_literal_map_value_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_null_equals2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_parens: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_return: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_stmt: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_throw: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_void_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/conditional_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_argument: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_cascade: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_conditional: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_do_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_dynamic_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_for_in: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_is: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_literal_list_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_literal_map_key_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_literal_map_key_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_literal_map_value_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_literal_map_value_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_null_dot: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_null_equals2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_return: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_throw: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_toString: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_void_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/final_local_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_argument: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_cascade: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_conditional: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_do_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_dynamic_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_for_in: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_is: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_literal_list_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_literal_map_key_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_literal_map_key_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_literal_map_value_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_literal_map_value_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_null_dot: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_null_equals2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_return: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_throw: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_toString: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_void_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/global_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_argument: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_cascade: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_conditional: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_do_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_dynamic_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_for_in: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_is: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_literal_list_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_literal_map_key_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_literal_map_key_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_literal_map_value_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_literal_map_value_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_null_dot: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_null_equals2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_return: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_throw: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_toString: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_void_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance2_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_argument: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_cascade: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_conditional: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_do_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_dynamic_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_for_in: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_is: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_literal_list_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_literal_map_key_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_literal_map_key_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_literal_map_value_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_literal_map_value_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_null_dot: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_null_equals2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_return: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_throw: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_toString: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_void_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance3_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_argument: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_cascade: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_conditional: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_do_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_dynamic_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_for_in: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_is: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_literal_list_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_literal_map_key_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_literal_map_key_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_literal_map_value_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_literal_map_value_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_null_dot: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_null_equals2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_return: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_throw: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_toString: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_void_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/instance_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_argument: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_cascade: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_conditional: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_do_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_dynamic_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_for_in: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_is: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_literal_list_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_literal_map_key_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_literal_map_key_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_literal_map_value_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_literal_map_value_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_null_dot: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_null_equals2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_return: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_throw: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_toString: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_void_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/local_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_argument: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_cascade: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_conditional: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_do_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_dynamic_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_for_in: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_is: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_literal_list_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_literal_map_key_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_literal_map_key_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_literal_map_value_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_literal_map_value_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_null_dot: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_null_equals2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_return: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_throw: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_toString: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_void_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/param_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_argument: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_cascade: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_conditional: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_do_while: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_dynamic_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_for_in: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_is: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_literal_list_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_literal_map_key_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_literal_map_key_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_literal_map_value_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_literal_map_value_init2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_null_dot: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_null_equals2: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_return: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_throw: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_toString: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_void_init: MissingCompileTimeError # Issue 32804
-void_type_usage_test/paren_while: MissingCompileTimeError # Issue 32804
 
 [ $arch != simarm && $arch != simarm64 && $arch != simdbc64 && $compiler == dartk && $runtime == vm && $strong ]
 export_ambiguous_main_test: Crash # Issue 32618
@@ -816,10 +611,6 @@
 vm/closure_memory_retention_test: Skip # KernelVM bug: Hits OOM
 vm/regress_29145_test: Skip # Issue 29145
 vm/type_cast_vm_test: RuntimeError
-void_block_return_test/00: MissingCompileTimeError
-void_type_usage_test/conditional2_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional3_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional_return_to_void: MissingCompileTimeError
 web_int_literals_test/*: SkipByDesign # Test applies only to JavaScript targets
 wrong_number_type_arguments_test/01: MissingCompileTimeError
 wrong_number_type_arguments_test/none: Pass
@@ -1187,10 +978,6 @@
 vm/type_vm_test/30: MissingRuntimeError
 vm/type_vm_test/31: MissingRuntimeError
 vm/type_vm_test/32: MissingRuntimeError
-void_block_return_test/00: MissingCompileTimeError
-void_type_usage_test/conditional2_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional3_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional_return_to_void: MissingCompileTimeError
 wrong_number_type_arguments_test/01: MissingCompileTimeError
 
 [ $compiler == dartkp && $minified ]
@@ -1424,10 +1211,6 @@
 redirecting_factory_infinite_steps_test/01: MissingCompileTimeError
 redirecting_factory_malbounded_test/01: MissingCompileTimeError
 type_promotion_logical_and_test/01: MissingCompileTimeError
-void_block_return_test/00: MissingCompileTimeError
-void_type_usage_test/conditional2_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional3_return_to_void: MissingCompileTimeError
-void_type_usage_test/conditional_return_to_void: MissingCompileTimeError
 wrong_number_type_arguments_test/01: MissingCompileTimeError
 
 [ $fasta && !$strong ]
diff --git a/tests/language_2/void_type_usage_test.dart b/tests/language_2/void_type_usage_test.dart
index 5ba0547..8d25350 100644
--- a/tests/language_2/void_type_usage_test.dart
+++ b/tests/language_2/void_type_usage_test.dart
@@ -8,7 +8,7 @@
 
 Object testVoidParam(void x) {
   x;  //# param_stmt: ok
-  true ? x : x;  //# param_conditional: compile-time error
+  true ? x : x;  //# param_conditional: ok
   for (x; false; x) {}   //# param_for: ok
   use(x);   //# param_argument: compile-time error
   use(x as Object);  //# param_as: ok
@@ -40,7 +40,7 @@
 
 Object testVoidCall(void f()) {
   f();  //# call_stmt: ok
-  true ? f() : f();  //# call_conditional: compile-time error
+  true ? f() : f();  //# call_conditional: ok
   for (f(); false; f()) {}   //# call_for: ok
   use(f());   //# call_argument: compile-time error
   use(f() as Object);  //# call_as: ok
@@ -72,7 +72,7 @@
   void x;
   x = 42;   //# local_assign: ok
   x;  //# local_stmt: ok
-  true ? x : x;  //# local_conditional: compile-time error
+  true ? x : x;  //# local_conditional: ok
   for (x; false; x) {}   //# local_for: ok
   use(x);   //# local_argument: compile-time error
   use(x as Object);  //# local_as: ok
@@ -107,7 +107,7 @@
   final void x = null;
   x = 42;   //# final_local_assign: compile-time error
   x;  //# final_local_stmt: ok
-  true ? x : x;  //# final_local_conditional: compile-time error
+  true ? x : x;  //# final_local_conditional: ok
   for (x; false; x) {}   //# final_local_for: ok
   use(x);   //# final_local_argument: compile-time error
   use(x as Object);  //# final_local_as: ok
@@ -141,7 +141,7 @@
 void global;
 Object testVoidGlobal() {
   global;  //# global_stmt: ok
-  true ? global : global;  //# global_conditional: compile-time error
+  true ? global : global;  //# global_conditional: ok
   for (global; false; global) {}   //# global_for: ok
   use(global);   //# global_argument: compile-time error
   use(global as Object);  //# global_as: ok
@@ -171,12 +171,12 @@
   return global;   //# global_return_dynamic: ok
 }
 
-testVoidConditional() {
+Object testVoidConditional() {
   void x;
-  (true ? x : x);   //# conditional_parens: compile-time error
-  true ? x : x;  //# conditional_stmt: compile-time error
-  true ? true ? x : x : true ? x : x;  //# conditional_conditional: compile-time error
-  for (true ? x : x; false; true ? x : x) {}   //# conditional_for: compile-time error
+  (true ? x : x);   //# conditional_parens: ok
+  true ? x : x;  //# conditional_stmt: ok
+  true ? true ? x : x : true ? x : x;  //# conditional_conditional: ok
+  for (true ? x : x; false; true ? x : x) {}   //# conditional_for: ok
   use(true ? x : x);   //# conditional_argument: compile-time error
   void y = true ? x : x;   //# conditional_void_init: compile-time error
   dynamic z = true ? x : x;  //# conditional_dynamic_init: compile-time error
@@ -184,16 +184,16 @@
   [true ? x : x];   //# conditional_literal_list_init: compile-time error
   var m1 = {4: true ? x : x};   //# conditional_literal_map_value_init: compile-time error
   Map<dynamic, dynamic> m3 = {4: true ? x : x};  //# conditional_literal_map_value_init2: compile-time error
-  null ?? true ? x : x;  //# conditional_null_equals2: compile-time error
+  null ?? (true ? x : x);  //# conditional_null_equals2: compile-time error
   return true ? x : x;   //# conditional_return: compile-time error
   while (true ? x : x) {};  //# conditional_while: compile-time error
   do {} while (true ? x : x);  //# conditional_do_while: compile-time error
   for (var v in true ? x : x) {}   //# conditional_for_in: compile-time error
 
-  (true ? 499 : x);   //# conditional2_parens: compile-time error
-  true ? 499 : x;  //# conditional2_stmt: compile-time error
-  true ? true ? 499 : x : true ? 499 : x;  //# conditional2_conditional: compile-time error
-  for (true ? 499 : x; false; true ? 499 : x) {}   //# conditional2_for: compile-time error
+  (true ? 499 : x);   //# conditional2_parens: ok
+  true ? 499 : x;  //# conditional2_stmt: ok
+  true ? true ? 499 : x : true ? 499 : x;  //# conditional2_conditional: ok
+  for (true ? 499 : x; false; true ? 499 : x) {}   //# conditional2_for: ok
   use(true ? 499 : x);   //# conditional2_argument: compile-time error
   void y2 = true ? 499 : x;   //# conditional2_void_init: compile-time error
   dynamic z2 = true ? 499 : x;  //# conditional2_dynamic_init: compile-time error
@@ -201,16 +201,16 @@
   [true ? 499 : x];   //# conditional2_literal_list_init: compile-time error
   var m12 = {4: true ? 499 : x};   //# conditional2_literal_map_value_init: compile-time error
   Map<dynamic, dynamic> m32 = {4: true ? 499 : x};  //# conditional2_literal_map_value_init2: compile-time error
-  null ?? true ? 499 : x;  //# conditional2_null_equals2: compile-time error
+  null ?? (true ? 499 : x);  //# conditional2_null_equals2: compile-time error
   return true ? 499 : x;   //# conditional2_return: compile-time error
   while (true ? 499 : x) {};  //# conditional2while: compile-time error
   do {} while (true ? 499 : x);  //# conditional2do_while: compile-time error
   for (var v in true ? 499 : x) {}   //# conditional2for_in: compile-time error
 
-  (true ? x : 499);   //# conditional3_parens: compile-time error
-  true ? x : 499;  //# conditional3_stmt: compile-time error
-  true ? true ? x : 499 : true ? x : 499;  //# conditional3_conditional: compile-time error
-  for (true ? x : 499; false; true ? x : 499) {}   //# conditional3_for: compile-time error
+  (true ? x : 499);   //# conditional3_parens: ok
+  true ? x : 499;  //# conditional3_stmt: ok
+  true ? true ? x : 499 : true ? x : 499;  //# conditional3_conditional: ok
+  for (true ? x : 499; false; true ? x : 499) {}   //# conditional3_for: ok
   use(true ? x : 499);   //# conditional3_argument: compile-time error
   void y3 = true ? x : 499;   //# conditional3_void_init: compile-time error
   dynamic z3 = true ? x : 499;  //# conditional3_dynamic_init: compile-time error
@@ -218,13 +218,20 @@
   [true ? x : 499];   //# conditional3_literal_list_init: compile-time error
   var m13 = {4: true ? x : 499 };   //# conditional3_literal_map_value_init: compile-time error
   Map<dynamic, dynamic> m33 = {4: true ? x : 499 };  //# conditional3_literal_map_value_init2: compile-time error
-  null ?? true ? x : 499;  //# conditional3_null_equals2: compile-time error
+  null ?? (true ? x : 499);  //# conditional3_null_equals2: compile-time error
   return true ? x : 499;   //# conditional3_return: compile-time error
   while (true ? x : 499) {};  //# conditional_while: compile-time error
   do {} while (true ? x : 499);  //# conditional_do_while: compile-time error
   for (var v in true ? x : 499) {}   //# conditional_for_in: compile-time error
 }
 
+dynamic testVoidConditionalDynamic() {
+  void x;
+  return true ? x : x;   //# conditional_return_dynamic: ok
+  return true ? 499 : x;   //# conditional2_return_dynamic: ok
+  return true ? x : 499;   //# conditional3_return_dynamic: ok
+}
+
 class A<T> {
   T x;
 
@@ -258,7 +265,7 @@
   A<void> a = new A<void>();
   a.x = 499;  //# field_assign: ok
   a.x;  //# instance_stmt: ok
-  true ? a.x : a.x;  //# instance_conditional: compile-time error
+  true ? a.x : a.x;  //# instance_conditional: ok
   for (a.x; false; a.x) {}   //# instance_for: ok
   use(a.x);   //# instance_argument: compile-time error
   use(a.x as Object);  //# instance_as: ok
@@ -285,7 +292,7 @@
   B b = new B();
   b.x = 42;   //# field_assign2: ok
   b.x;  //# instance2_stmt: ok
-  true ? b.x : b.x;  //# instance2_conditional: compile-time error
+  true ? b.x : b.x;  //# instance2_conditional: ok
   for (b.x; false; b.x) {}   //# instance2_for: ok
   use(b.x);   //# instance2_argument: compile-time error
   use(b.x as Object);  //# instance2_as: ok
@@ -313,7 +320,7 @@
   C c = new C();
   c.x = 32;   //# setter_assign: ok
   c.x;  //# instance3_stmt: ok
-  true ? c.x : c.x;  //# instance3_conditional: compile-time error
+  true ? c.x : c.x;  //# instance3_conditional: ok
   for (c.x; false; c.x) {}   //# instance3_for: ok
   use(c.x);   //# instance3_argument: compile-time error
   use(c.x as Object);  //# instance3_as: ok
@@ -353,7 +360,7 @@
 Object testParenthesized() {
   void x;
   (x);  //# paren_stmt: ok
-  true ? (x) : (x);  //# paren_conditional: compile-time error
+  true ? (x) : (x);  //# paren_conditional: ok
   for ((x); false; (x)) {}   //# paren_for: ok
   use((x));   //# paren_argument: compile-time error
   use((x) as Object);  //# paren_as: ok
@@ -393,9 +400,9 @@
   return y;   //# local_return_to_void: ok
   return z;   //# final_local_return_to_void: ok
   return global;   //# global_return_to_void: ok
-  return true ? x : x;   //# conditional_return_to_void: compile-time error
-  return true ? 499 : x;   //# conditional2_return_to_void: compile-time error
-  return true ? x : 499;   //# conditional3_return_to_void: compile-time error
+  return true ? x : x;   //# conditional_return_to_void: ok
+  return true ? 499 : x;   //# conditional2_return_to_void: ok
+  return true ? x : 499;   //# conditional3_return_to_void: ok
   return a.x;   //# instance_return_to_void: ok
   return b.x;   //# instance2_return_to_void: ok
   return c.x;   //# instance3_return_to_void: ok
diff --git a/tests/lib_2/lib_2_kernel.status b/tests/lib_2/lib_2_kernel.status
index 29fd51d..462fd22 100644
--- a/tests/lib_2/lib_2_kernel.status
+++ b/tests/lib_2/lib_2_kernel.status
@@ -224,7 +224,6 @@
 mirrors/redirecting_factory_different_type_test/02: MissingCompileTimeError
 mirrors/redirecting_factory_different_type_test/none: RuntimeError
 mirrors/redirecting_factory_reflection_test: RuntimeError
-mirrors/top_level_accessors_test/01: MissingCompileTimeError
 
 # Enabling of dartk for sim{arm,arm64,dbc64} revealed these test failures, which
 # are to be triaged.  Isolate tests are skipped on purpose due to the usage of
@@ -334,9 +333,6 @@
 mirrors/redirecting_factory_different_type_test/01: MissingCompileTimeError
 mirrors/redirecting_factory_different_type_test/02: MissingCompileTimeError
 
-[ $fasta && $strong ]
-mirrors/top_level_accessors_test/01: MissingCompileTimeError
-
 [ $fasta && !$strong ]
 isolate/isolate_import_test/01: MissingCompileTimeError
 isolate/isolate_stress_test: CompileTimeError
