Revert "Check void usage and invalid returns"

This reverts commit 11001793a2ab7a3ccc2b15c54dd61a14576cac16.

Reason for revert: Doesn't allow void to void assignment. This is breaks a lot of packages.

Original change's description:
> Check void usage and invalid returns
>
> Closes https://github.com/dart-lang/sdk/issues/30470
>
> Change-Id: I2ed5b54c74e0bba2771036774bbe2197ce29109d
> Reviewed-on: https://dart-review.googlesource.com/65141
> Commit-Queue: Peter von der Ahé <ahe@google.com>
> Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>

TBR=ahe@google.com,dmitryas@google.com

Change-Id: I78f479cf8b0824dd338ae43a5514f320fd112a3f
Reviewed-on: https://dart-review.googlesource.com/66040
Reviewed-by: Leaf Petersen <leafp@google.com>
Reviewed-by: Mike Fairhurst <mfairhurst@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
diff --git a/foo b/foo
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/foo
diff --git a/pkg/analysis_server/lib/src/plugin/plugin_manager.dart b/pkg/analysis_server/lib/src/plugin/plugin_manager.dart
index ba63c49..65d00d4 100644
--- a/pkg/analysis_server/lib/src/plugin/plugin_manager.dart
+++ b/pkg/analysis_server/lib/src/plugin/plugin_manager.dart
@@ -1072,10 +1072,8 @@
       return false;
     }
     channel = info._createChannel();
-    // 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);
+    await channel.listen(handleResponse, handleNotification,
+        onDone: handleOnDone, onError: handleOnError);
     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 783cb9c..c5cff7d 100644
--- a/pkg/analysis_server/lib/src/server/http_server.dart
+++ b/pkg/analysis_server/lib/src/server/http_server.dart
@@ -136,9 +136,7 @@
     if (getHandler == null) {
       getHandler = new DiagnosticsSite(socketServer, _printBuffer);
     }
-    // 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);
+    await getHandler.handleGetRequest(request);
   }
 
   /**
diff --git a/pkg/analysis_server/lib/src/status/pages.dart b/pkg/analysis_server/lib/src/status/pages.dart
index e727bf5..f9c7e06 100644
--- a/pkg/analysis_server/lib/src/status/pages.dart
+++ b/pkg/analysis_server/lib/src/status/pages.dart
@@ -38,9 +38,7 @@
     } else {
       buf.writeln('<div>');
     }
-    // TODO(brianwilkerson) Determine if await is necessary, if so, change the
-    // return type of [gen] to `Future<void>`.
-    await (gen() as dynamic);
+    await gen();
     buf.writeln('</div>');
   }
 
@@ -62,9 +60,7 @@
     // TODO(brianwilkerson) Determine whether this await is necessary.
     await null;
     buf.clear();
-    // TODO(brianwilkerson) Determine if await is necessary, if so, change the
-    // return type of [generatePage] to `Future<void>`.
-    await (generatePage(params) as dynamic);
+    await generatePage(params);
     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 fe326f3..5d5c629 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', () {
-        appendLibraryFiles(targetLibrary);
+        return 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 b072546..d83ab5e 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) {
-      throw new StateError('Exit called: $exitCode');
+      return 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 c4868c3..c934036 100644
--- a/pkg/dev_compiler/test/sourcemap/common.dart
+++ b/pkg/dev_compiler/test/sourcemap/common.dart
@@ -2,8 +2,6 @@
 // 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;
@@ -21,15 +19,14 @@
 abstract class ChainContextWithCleanupHelper extends ChainContext {
   Map<TestDescription, Data> cleanupHelper = {};
 
-  Future<void> cleanUp(TestDescription description, Result result) {
+  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 null;
+      return;
     }
 
     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 5bd77ea..fc453d5 100644
--- a/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
+++ b/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
@@ -5827,17 +5827,6 @@
         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;
 
@@ -6877,14 +6866,6 @@
         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 c57370a..0b4dadd 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,11 +786,8 @@
   @override
   Expression _finish(
       Expression body, ComplexAssignmentJudgment complexAssignment) {
-    int offset = offsetForToken(token);
     return super._finish(
-        makeLet(
-            receiverVariable, makeLet(indexVariable, body)..fileOffset = offset)
-          ..fileOffset = offset,
+        makeLet(receiverVariable, makeLet(indexVariable, body)),
         complexAssignment);
   }
 
@@ -1050,9 +1047,7 @@
   @override
   Expression _finish(
       Expression body, ComplexAssignmentJudgment complexAssignment) {
-    return super._finish(
-        makeLet(indexVariable, body)..fileOffset = offsetForToken(token),
-        complexAssignment);
+    return super._finish(makeLet(indexVariable, body), 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 5e966d5..71d3160 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,7 +39,6 @@
 
 import '../fasta_codes.dart'
     show
-        messageVoidExpression,
         noLength,
         templateCantInferTypeDueToCircularity,
         templateCantUseSuperBoundedTypeForInstanceCreation,
@@ -440,8 +439,7 @@
       variable.type = inferredType;
     }
     for (var judgment in cascadeJudgments) {
-      inferrer.inferExpression(factory, judgment, const UnknownType(), false,
-          isVoidAllowed: true);
+      inferrer.inferExpression(factory, judgment, const UnknownType(), false);
     }
     inferrer.listener.cascadeExpression(this, fileOffset, inferredType);
     return null;
@@ -1178,8 +1176,7 @@
             this.variable.type,
             syntheticAssignment.rhs,
             syntheticAssignment.rhs.fileOffset,
-            template: templateForInLoopElementTypeNotAssignable,
-            isVoidAllowed: true);
+            template: templateForInLoopElementTypeNotAssignable);
         if (syntheticAssignment is PropertyAssignmentJudgment) {
           syntheticAssignment._handleWriteContravariance(
               inferrer, inferrer.thisType);
@@ -1482,10 +1479,6 @@
       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.
@@ -2480,7 +2473,7 @@
       Factory<Expression, Statement, Initializer, Type> factory) {
     var judgment = this.judgment;
     var closureContext = inferrer.closureContext;
-    DartType typeContext = !closureContext.isGenerator
+    var typeContext = !closureContext.isGenerator
         ? closureContext.returnOrYieldContext
         : const UnknownType();
     DartType inferredType;
@@ -2494,8 +2487,8 @@
     // inferred type of the closure.  TODO(paulberry): is this what we want
     // for Fasta?
     if (judgment != null) {
-      closureContext.handleReturn(inferrer, inferredType, expression,
-          fileOffset, !identical(returnKeyword?.lexeme, "return"));
+      closureContext.handleReturn(
+          inferrer, inferredType, expression, fileOffset);
     }
     inferrer.listener
         .returnStatement(this, fileOffset, returnKeyword, null, semicolon);
@@ -3228,8 +3221,7 @@
       Factory<Expression, Statement, Initializer, Type> factory,
       kernel.Expression expression,
       DartType typeContext,
-      bool typeNeeded,
-      {bool isVoidAllowed: false}) {
+      bool typeNeeded) {
     // `null` should never be used as the type context.  An instance of
     // `UnknownType` should be used instead.
     assert(typeContext != null);
@@ -3255,34 +3247,7 @@
       // so that the type hierarchy will be simpler (which may speed up "is"
       // checks).
       expression.infer(this, factory, typeContext);
-      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;
+      return expression.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 936bccc..3961294 100644
--- a/pkg/front_end/lib/src/fasta/rewrite_severity.dart
+++ b/pkg/front_end/lib/src/fasta/rewrite_severity.dart
@@ -8,15 +8,6 @@
 
 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 650c384..5ded6a7b 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,28 +68,7 @@
 
 import '../builder/builder.dart' show PrefixBuilder;
 
-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 '../fasta_codes.dart';
 
 import '../kernel/factory.dart' show Factory;
 
@@ -187,8 +166,6 @@
   /// this typing expectation in `Stream` or `Iterator`, as appropriate.
   final DartType returnOrYieldContext;
 
-  final DartType declaredReturnType;
-
   final bool _needToInferReturnType;
 
   final bool _needImplicitDowncasts;
@@ -210,7 +187,6 @@
       DartType returnContext,
       bool needToInferReturnType,
       bool needImplicitDowncasts) {
-    DartType declaredReturnType = returnContext;
     bool isAsync = asyncMarker == AsyncMarker.Async ||
         asyncMarker == AsyncMarker.AsyncStar;
     bool isGenerator = asyncMarker == AsyncMarker.SyncStar ||
@@ -228,33 +204,28 @@
           inferrer.typeSchemaEnvironment.unfutureType(returnContext));
     }
     return new ClosureContext._(isAsync, isGenerator, returnContext,
-        declaredReturnType, needToInferReturnType, needImplicitDowncasts);
+        needToInferReturnType, needImplicitDowncasts);
   }
 
-  ClosureContext._(
-      this.isAsync,
-      this.isGenerator,
-      this.returnOrYieldContext,
-      this.declaredReturnType,
-      this._needToInferReturnType,
-      this._needImplicitDowncasts) {
+  ClosureContext._(this.isAsync, this.isGenerator, this.returnOrYieldContext,
+      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, bool isArrow) {
+      Expression expression, int fileOffset) {
     if (isGenerator) return;
     _updateInferredReturnType(
-        inferrer, type, expression, fileOffset, true, false, isArrow);
+        inferrer, type, expression, fileOffset, true, false);
   }
 
   void handleYield(TypeInferrerImpl inferrer, bool isYieldStar, DartType type,
       Expression expression, int fileOffset) {
     if (!isGenerator) return;
     _updateInferredReturnType(
-        inferrer, type, expression, fileOffset, false, isYieldStar, false);
+        inferrer, type, expression, fileOffset, false, isYieldStar);
   }
 
   DartType inferReturnType(TypeInferrerImpl inferrer) {
@@ -271,14 +242,8 @@
     return _wrapAsyncOrGenerator(inferrer, inferredType);
   }
 
-  void _updateInferredReturnType(
-      TypeInferrerImpl inferrer,
-      DartType type,
-      Expression expression,
-      int fileOffset,
-      bool isReturn,
-      bool isYieldStar,
-      bool isArrow) {
+  void _updateInferredReturnType(TypeInferrerImpl inferrer, DartType type,
+      Expression expression, int fileOffset, bool isReturn, bool isYieldStar) {
     if (_needImplicitDowncasts) {
       var expectedType = isYieldStar
           ? _wrapAsyncOrGenerator(inferrer, returnOrYieldContext)
@@ -287,10 +252,7 @@
         expectedType = greatestClosure(inferrer.coreTypes, expectedType);
         if (inferrer.ensureAssignable(
                 expectedType, type, expression, fileOffset,
-                isReturnFromAsync: isAsync,
-                isReturn: isReturn,
-                declaredReturnType: declaredReturnType,
-                isArrow: isArrow) !=
+                isReturnFromAsync: isAsync) !=
             null) {
           type = expectedType;
         }
@@ -606,23 +568,9 @@
   /// [expectedType], and inserts an implicit downcast if appropriate.
   Expression ensureAssignable(DartType expectedType, DartType actualType,
       Expression expression, int fileOffset,
-      {bool isReturnFromAsync: false,
-      bool isReturn: false,
-      bool isVoidAllowed,
-      bool isArrow: false,
-      DartType declaredReturnType,
+      {bool isReturnFromAsync = false,
       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;
@@ -639,28 +587,6 @@
         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
@@ -697,15 +623,6 @@
       }
     }
 
-    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.
@@ -743,67 +660,6 @@
     }
   }
 
-  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].
   ///
@@ -1231,8 +1087,7 @@
       Factory<Expression, Statement, Initializer, Type> factory,
       kernel.Expression expression,
       DartType typeContext,
-      bool typeNeeded,
-      {bool isVoidAllowed});
+      bool typeNeeded);
 
   @override
   void inferFieldInitializer<Expression, Statement, Initializer, Type>(
diff --git a/pkg/front_end/messages.status b/pkg/front_end/messages.status
index 30473ab..77ca5a3 100644
--- a/pkg/front_end/messages.status
+++ b/pkg/front_end/messages.status
@@ -372,7 +372,6 @@
 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 c47b557..7c48b34 100644
--- a/pkg/front_end/messages.yaml
+++ b/pkg/front_end/messages.yaml
@@ -2618,19 +2618,3 @@
   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 2d2e2b7..485d154 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
-  Future<void> cleanUp(TestDescription description, Result result) async {
-    await cleanupHelper?.outDir?.delete(recursive: true);
+  void cleanUp(TestDescription description, Result result) {
+    cleanupHelper?.outDir?.deleteSync(recursive: true);
   }
 
   TestData cleanupHelper;
diff --git a/pkg/front_end/testcases/expression.status b/pkg/front_end/testcases/expression.status
index e9ab4a8..e69de29 100644
--- a/pkg/front_end/testcases/expression.status
+++ b/pkg/front_end/testcases/expression.status
@@ -1,3 +0,0 @@
-# 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 ecfd44f..bdd35f6 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,9 +5,7 @@
 static method f() → dynamic {
   core::List<core::int> o;
   o.{core::Iterable::forEach}((core::int i) → void {
-    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;
+    return i.{core::num::+}(1);
   });
 }
 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 9b35c93..bdd35f6 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,9 +5,7 @@
 static method f() → dynamic {
   core::List<core::int> o;
   o.{core::Iterable::forEach}((core::int i) → void {
-    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;
+    return i.{core::num::+}(1);
   });
 }
 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 007fd21..f8773b2 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,16 +1,8 @@
-// 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 = 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;
+  void x = self::f();
 }
 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 b7f9b2f..f8773b2 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,16 +1,8 @@
-// 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 = 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;
+  void x = self::f();
 }
 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 2464498..3bfd2e6 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,9 +1,3 @@
-// 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 2464498..3bfd2e6 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,9 +1,3 @@
-// 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 eb90747..0d3fd7d 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,9 +1,3 @@
-// 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;
@@ -23,9 +17,7 @@
     core::print("running");
   }
   dynamic x = self::run<dynamic>(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;
+  void y = self::run<void>(printRunning);
   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 4f71280..0d3fd7d 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,9 +1,3 @@
-// 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;
@@ -23,9 +17,7 @@
     core::print("running");
   }
   dynamic x = self::run<dynamic>(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;
+  void y = self::run<void>(printRunning);
   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 6b4745f..9a42ff3 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,9 +1,3 @@
-// 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 6b4745f..9a42ff3 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,9 +1,3 @@
-// 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 5d708e6..5417786 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,9 +1,3 @@
-// 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 5d708e6..5417786 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,9 +1,3 @@
-// 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 f65cbcd..d4f9d08 100644
--- a/pkg/front_end/testcases/rasta/super.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/super.dart.strong.expect
@@ -222,10 +222,6 @@
 //     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);
 //           ^
@@ -234,10 +230,6 @@
 //     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);
 //           ^
@@ -245,10 +237,6 @@
 // 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;
@@ -438,17 +426,11 @@
     super.{self::A::[]}(87).call();
     self::use(super.{self::A::[]}(87).call());
     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);
+    self::use(super.{self::A::m}());
     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);
+    self::use(super.{self::A::m}(87));
     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);
+    self::use(super.{self::A::n}(87));
     super.{self::A::a} = 42;
     self::use(super.{self::A::a} = 42);
     super.{self::A::b} = 42;
@@ -468,35 +450,35 @@
     super.{self::B::i} = 42;
     self::use(super.{self::B::i} = 42);
     super.{self::A::[]=}(87, 42);
-    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);
+    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);
     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 #t52 = super.{self::A::a} in #t52.{core::Object::==}(null) ?{dynamic} super.{self::A::a} = 42 : #t52);
+    self::use(let final dynamic #t46 = super.{self::A::a} in #t46.{core::Object::==}(null) ?{dynamic} super.{self::A::a} = 42 : #t46);
     super.{self::B::b}.{core::Object::==}(null) ?{dynamic} super.{self::A::b} = 42 : null;
-    self::use(let final dynamic #t53 = super.{self::B::b} in #t53.{core::Object::==}(null) ?{dynamic} super.{self::A::b} = 42 : #t53);
+    self::use(let final dynamic #t47 = super.{self::B::b} in #t47.{core::Object::==}(null) ?{dynamic} super.{self::A::b} = 42 : #t47);
     super.{self::A::c}.{core::Object::==}(null) ?{dynamic} super.{self::B::c} = 42 : null;
-    self::use(let final dynamic #t54 = super.{self::A::c} in #t54.{core::Object::==}(null) ?{dynamic} super.{self::B::c} = 42 : #t54);
+    self::use(let final dynamic #t48 = super.{self::A::c} in #t48.{core::Object::==}(null) ?{dynamic} super.{self::B::c} = 42 : #t48);
     super.{self::B::d}.{core::Object::==}(null) ?{dynamic} super.{self::A::d} = 42 : null;
-    self::use(let final dynamic #t55 = super.{self::B::d} in #t55.{core::Object::==}(null) ?{dynamic} super.{self::A::d} = 42 : #t55);
+    self::use(let final dynamic #t49 = super.{self::B::d} in #t49.{core::Object::==}(null) ?{dynamic} super.{self::A::d} = 42 : #t49);
     super.{self::A::e}.{core::Object::==}(null) ?{dynamic} super.e = 42 : null;
-    self::use(let final dynamic #t56 = super.{self::A::e} in #t56.{core::Object::==}(null) ?{dynamic} super.e = 42 : #t56);
+    self::use(let final dynamic #t50 = super.{self::A::e} in #t50.{core::Object::==}(null) ?{dynamic} super.e = 42 : #t50);
     super.{self::A::f}.{core::Object::==}(null) ?{dynamic} super.f = 42 : null;
-    self::use(let final dynamic #t57 = super.{self::A::f} in #t57.{core::Object::==}(null) ?{dynamic} super.f = 42 : #t57);
+    self::use(let final dynamic #t51 = super.{self::A::f} in #t51.{core::Object::==}(null) ?{dynamic} super.f = 42 : #t51);
     super.g.{core::Object::==}(null) ?{dynamic} super.{self::A::g} = 42 : null;
-    self::use(let final dynamic #t58 = super.g in #t58.{core::Object::==}(null) ?{dynamic} super.{self::A::g} = 42 : #t58);
+    self::use(let final dynamic #t52 = super.g in #t52.{core::Object::==}(null) ?{dynamic} super.{self::A::g} = 42 : #t52);
     super.{self::A::h}.{core::Object::==}(null) ?{dynamic} super.{self::A::h} = 42 : null;
-    self::use(let final dynamic #t59 = super.{self::A::h} in #t59.{core::Object::==}(null) ?{dynamic} super.{self::A::h} = 42 : #t59);
+    self::use(let final dynamic #t53 = super.{self::A::h} in #t53.{core::Object::==}(null) ?{dynamic} super.{self::A::h} = 42 : #t53);
     super.{self::A::i}.{core::Object::==}(null) ?{dynamic} super.{self::B::i} = 42 : null;
-    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);
+    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);
     super.{self::A::m}.{core::Object::==}(null) ?{core::Object} super.m = 42 : null;
-    self::use(let final () → void #t68 = super.{self::A::m} in #t68.{core::Object::==}(null) ?{core::Object} super.m = 42 : #t68);
+    self::use(let final () → void #t62 = super.{self::A::m} in #t62.{core::Object::==}(null) ?{core::Object} super.m = 42 : #t62);
     super.{self::A::n}.{core::Object::==}(null) ?{core::Object} super.{self::A::n} = 42 : null;
-    self::use(let final () → void #t69 = super.{self::A::n} in #t69.{core::Object::==}(null) ?{core::Object} super.{self::A::n} = 42 : #t69);
+    self::use(let final () → void #t63 = super.{self::A::n} in #t63.{core::Object::==}(null) ?{core::Object} super.{self::A::n} = 42 : #t63);
     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);
@@ -515,21 +497,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 #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'.
+    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'.
 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 #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'.
+    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'.
 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 #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'.
+    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'.
 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 #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'.
+    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'.
 Try correcting the name to the name of an existing method, or defining a method named '+'.
     use(super.n += 42);
                 ^");
@@ -551,21 +533,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 #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'.
+    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'.
 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 #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'.
+    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'.
 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 #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'.
+    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'.
 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 #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'.
+    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'.
 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 5ef2a39..b5d4f7b 100644
--- a/pkg/front_end/testcases/strong.status
+++ b/pkg/front_end/testcases/strong.status
@@ -220,5 +220,3 @@
 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 7ce7859..b5aeddb 100644
--- a/pkg/front_end/testcases/super_rasta_copy.dart.strong.expect
+++ b/pkg/front_end/testcases/super_rasta_copy.dart.strong.expect
@@ -200,10 +200,6 @@
 //     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);
 //           ^
@@ -211,10 +207,6 @@
 // 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;
@@ -370,13 +362,9 @@
     super.{self::A::[]}(87).call();
     self::use(super.{self::A::[]}(87).call());
     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);
+    self::use(super.{self::A::m}());
     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);
+    self::use(super.{self::A::m}(87));
     super.{self::A::a} = 42;
     self::use(super.{self::A::a} = 42);
     super.{self::A::b} = 42;
@@ -396,31 +384,31 @@
     super.{self::B::i} = 42;
     self::use(super.{self::B::i} = 42);
     super.{self::A::[]=}(87, 42);
-    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);
+    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);
     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 #t42 = super.{self::A::a} in #t42.{core::Object::==}(null) ?{dynamic} super.{self::A::a} = 42 : #t42);
+    self::use(let final dynamic #t38 = super.{self::A::a} in #t38.{core::Object::==}(null) ?{dynamic} super.{self::A::a} = 42 : #t38);
     super.{self::B::b}.{core::Object::==}(null) ?{dynamic} super.{self::A::b} = 42 : null;
-    self::use(let final dynamic #t43 = super.{self::B::b} in #t43.{core::Object::==}(null) ?{dynamic} super.{self::A::b} = 42 : #t43);
+    self::use(let final dynamic #t39 = super.{self::B::b} in #t39.{core::Object::==}(null) ?{dynamic} super.{self::A::b} = 42 : #t39);
     super.{self::A::c}.{core::Object::==}(null) ?{dynamic} super.{self::B::c} = 42 : null;
-    self::use(let final dynamic #t44 = super.{self::A::c} in #t44.{core::Object::==}(null) ?{dynamic} super.{self::B::c} = 42 : #t44);
+    self::use(let final dynamic #t40 = super.{self::A::c} in #t40.{core::Object::==}(null) ?{dynamic} super.{self::B::c} = 42 : #t40);
     super.{self::B::d}.{core::Object::==}(null) ?{dynamic} super.{self::A::d} = 42 : null;
-    self::use(let final dynamic #t45 = super.{self::B::d} in #t45.{core::Object::==}(null) ?{dynamic} super.{self::A::d} = 42 : #t45);
+    self::use(let final dynamic #t41 = super.{self::B::d} in #t41.{core::Object::==}(null) ?{dynamic} super.{self::A::d} = 42 : #t41);
     super.{self::A::e}.{core::Object::==}(null) ?{dynamic} super.e = 42 : null;
-    self::use(let final dynamic #t46 = super.{self::A::e} in #t46.{core::Object::==}(null) ?{dynamic} super.e = 42 : #t46);
+    self::use(let final dynamic #t42 = super.{self::A::e} in #t42.{core::Object::==}(null) ?{dynamic} super.e = 42 : #t42);
     super.{self::A::f}.{core::Object::==}(null) ?{dynamic} super.f = 42 : null;
-    self::use(let final dynamic #t47 = super.{self::A::f} in #t47.{core::Object::==}(null) ?{dynamic} super.f = 42 : #t47);
+    self::use(let final dynamic #t43 = super.{self::A::f} in #t43.{core::Object::==}(null) ?{dynamic} super.f = 42 : #t43);
     super.g.{core::Object::==}(null) ?{dynamic} super.{self::A::g} = 42 : null;
-    self::use(let final dynamic #t48 = super.g in #t48.{core::Object::==}(null) ?{dynamic} super.{self::A::g} = 42 : #t48);
+    self::use(let final dynamic #t44 = super.g in #t44.{core::Object::==}(null) ?{dynamic} super.{self::A::g} = 42 : #t44);
     super.{self::A::h}.{core::Object::==}(null) ?{dynamic} super.{self::A::h} = 42 : null;
-    self::use(let final dynamic #t49 = super.{self::A::h} in #t49.{core::Object::==}(null) ?{dynamic} super.{self::A::h} = 42 : #t49);
+    self::use(let final dynamic #t45 = super.{self::A::h} in #t45.{core::Object::==}(null) ?{dynamic} super.{self::A::h} = 42 : #t45);
     super.{self::A::i}.{core::Object::==}(null) ?{dynamic} super.{self::B::i} = 42 : null;
-    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);
+    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);
     super.{self::A::m}.{core::Object::==}(null) ?{core::Object} super.m = 42 : null;
-    self::use(let final () → void #t58 = super.{self::A::m} in #t58.{core::Object::==}(null) ?{core::Object} super.m = 42 : #t58);
+    self::use(let final () → void #t54 = super.{self::A::m} in #t54.{core::Object::==}(null) ?{core::Object} super.m = 42 : #t54);
     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);
@@ -439,13 +427,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 #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'.
+    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'.
 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 #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'.
+    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'.
 Try correcting the name to the name of an existing method, or defining a method named '+'.
     use(super.m += 42);
                 ^");
@@ -467,13 +455,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 #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'.
+    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'.
 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 #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'.
+    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'.
 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 54eb793..e2a1a1a 100644
--- a/pkg/pkg.status
+++ b/pkg/pkg.status
@@ -95,7 +95,6 @@
 [ $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
@@ -114,10 +113,7 @@
 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 53256ae..2a82f99 100644
--- a/pkg/testing/lib/src/chain.dart
+++ b/pkg/testing/lib/src/chain.dart
@@ -293,7 +293,7 @@
     return result.copyWithOutcome(outcome);
   }
 
-  Future<void> cleanUp(TestDescription description, Result result) => null;
+  void cleanUp(TestDescription description, Result result) {}
 }
 
 abstract class Step<I, O, C extends ChainContext> {
diff --git a/runtime/lib/convert_patch.dart b/runtime/lib/convert_patch.dart
index 34fa1e6..a2c802d 100644
--- a/runtime/lib/convert_patch.dart
+++ b/runtime/lib/convert_patch.dart
@@ -621,6 +621,22 @@
   }
 
   /**
+   * 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 3913854..c8a4111 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;
-        process.requestExit();
+        await 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 827b93c..763fa52 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(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -130,7 +130,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -227,7 +227,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -353,7 +353,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -460,7 +460,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -586,7 +586,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -698,7 +698,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -822,7 +822,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -928,7 +928,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1030,7 +1030,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1172,7 +1172,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1346,7 +1346,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1480,7 +1480,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1808,7 +1808,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -2054,7 +2054,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -2521,7 +2521,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -2862,7 +2862,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -3522,7 +3522,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -3956,7 +3956,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -4121,7 +4121,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return 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 d3dc4b2..903bf2b 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(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -131,7 +131,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -231,7 +231,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -332,7 +332,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -461,7 +461,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -571,7 +571,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -700,7 +700,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -815,7 +815,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -942,7 +942,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1051,7 +1051,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1156,7 +1156,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      array[-1];
+      return array[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1566,7 +1566,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1740,7 +1740,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -1874,7 +1874,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -2202,7 +2202,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -2448,7 +2448,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -2915,7 +2915,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -3256,7 +3256,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -3916,7 +3916,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -4350,7 +4350,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
@@ -4515,7 +4515,7 @@
       return e is RangeError;
     });
     Expect.throws(() {
-      view[-1];
+      return view[-1];
     }, (e) {
       return e is RangeError;
     });
diff --git a/runtime/vm/object_test.cc b/runtime/vm/object_test.cc
index ea834ac..baf1b79 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 test1(int a) {\n"
+      "  static void test1(int a) {\n"
       "    return a > 1 ? a + 1 : a;\n"
       "  }\n"
-      "  static test2(a) {\n"
+      "  static void test2(a) {\n"
       "    return a > 1 ? a + 1 : a;\n"
       "  }\n"
-      "  static test3(b) {\n"
+      "  static void test3(b) {\n"
       "    return b > 1 ? b + 1 : b;\n"
       "  }\n"
-      "  static test4(b) {\n"
+      "  static void test4(b) {\n"
       "    return b > 1 ? b - 1 : b;\n"
       "  }\n"
-      "  static test5(b) {\n"
+      "  static void test5(b) {\n"
       "    return b > 1 ? b - 2 : b;\n"
       "  }\n"
-      "  test6(int a) {\n"
+      "  void test6(int a) {\n"
       "    return a > 1 ? a + 1 : a;\n"
       "  }\n"
       "}\n"
       "class B {\n"
-      "  static /* Different declaration style. */\n"
+      "  static void /* 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 test5(b) {\n"
+      "  static void test5(b) {\n"
       "    return b > 1 ?\n"
       "        b - 2 : b;\n"
       "  }\n"
-      "  test6(int a) {\n"
+      "  void 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 157942c..72819b9 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 {
-    tempDirectory.deleteSync(recursive: true);
+    await tempDirectory.deleteSync(recursive: true);
   }
 }
diff --git a/tests/co19/co19-kernel.status b/tests/co19/co19-kernel.status
index 3cc75c9..a716a8e 100644
--- a/tests/co19/co19-kernel.status
+++ b/tests/co19/co19-kernel.status
@@ -11,6 +11,7 @@
 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.
@@ -581,8 +582,6 @@
 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
@@ -896,7 +895,6 @@
 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
@@ -917,7 +915,6 @@
 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
@@ -1027,7 +1024,6 @@
 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
@@ -1125,13 +1121,8 @@
 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/using_t01: CompileTimeError
-Language/Types/Type_Void/using_t02: CompileTimeError
-Language/Types/Type_Void/using_t03: CompileTimeError
+Language/Types/Type_Void/syntax_t09: MissingCompileTimeError
 Language/Variables/constant_variable_t01: CompileTimeError
 Language/Variables/constant_variable_t02: CompileTimeError
 Language/Variables/constant_variable_t03: CompileTimeError
@@ -1210,9 +1201,6 @@
 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 c3dd0b3..bb1a5bd 100644
--- a/tests/co19_2/co19_2-kernel.status
+++ b/tests/co19_2/co19_2-kernel.status
@@ -202,7 +202,11 @@
 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/constant_initialization_t03: CompileTimeError # Dart 1 constants, https://github.com/dart-lang/sdk/issues/33894
 Language/Variables/constant_variable_t09: CompileTimeError # Dart 1 constants, https://github.com/dart-lang/sdk/issues/33894
 Language/Variables/final_or_static_initialization_t02: MissingCompileTimeError
@@ -1470,14 +1474,3 @@
 LibTest/typed_data/Uint8List/last_A01_t02: RuntimeError
 Utils/tests/Expect/setEquals_A01_t02: CompileTimeError # Dart 1 constants, https://github.com/dart-lang/sdk/issues/33894
 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 b75b0c5..327c9cc 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;
 }
-main() {
+void 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 e1340d7..f540c8b 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;
-toplevelMethod() {}
+void 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 19e1a06..4258546 100644
--- a/tests/compiler/dart2js_extra/inference_super_set_call_test.dart
+++ b/tests/compiler/dart2js_extra/inference_super_set_call_test.dart
@@ -10,7 +10,9 @@
 abstract class A {
   set x(v) {}
   set z(v) {}
-  set y(v) => 'hi';
+  set y(v) {
+    return '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 115f070..91e9487 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 027128a..beded4c 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 c5f5084..68c07fe 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 MyFunctionType();
+typedef void MyFunctionType();
 
 @Native("A")
 class A {
diff --git a/tests/language_2/async_star_test.dart b/tests/language_2/async_star_test.dart
index fa18ff4..abe7de8 100644
--- a/tests/language_2/async_star_test.dart
+++ b/tests/language_2/async_star_test.dart
@@ -596,8 +596,7 @@
       f() async* {
         try {
           list.add(0);
-          list.add(1);
-          yield null;
+          yield list.add(1);
           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 4d1b5fc..2115bc3 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) {
-    a + 42;
+    return a + 42;
   }
 }
 
diff --git a/tests/language_2/issue15606_test.dart b/tests/language_2/issue15606_test.dart
index a1ec9f9..dc3ad7a 100644
--- a/tests/language_2/issue15606_test.dart
+++ b/tests/language_2/issue15606_test.dart
@@ -6,7 +6,7 @@
 
 var a = [new Object(), 42];
 
-bar(x, y) {}
+void bar(x, y) {}
 
 main() {
   while (false) {
diff --git a/tests/language_2/language_2.status b/tests/language_2/language_2.status
index 0251095..0572c2e 100644
--- a/tests/language_2/language_2.status
+++ b/tests/language_2/language_2.status
@@ -30,6 +30,45 @@
 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 c6dcd86..42452d8 100644
--- a/tests/language_2/language_2_analyzer.status
+++ b/tests/language_2/language_2_analyzer.status
@@ -221,51 +221,78 @@
 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
@@ -342,6 +369,7 @@
 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 bbd6c3e..329ec9c 100644
--- a/tests/language_2/language_2_dart2js.status
+++ b/tests/language_2/language_2_dart2js.status
@@ -702,6 +702,46 @@
 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
 
@@ -857,6 +897,10 @@
 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 10eeba5..1285c54 100644
--- a/tests/language_2/language_2_dartdevc.status
+++ b/tests/language_2/language_2_dartdevc.status
@@ -84,6 +84,7 @@
 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
@@ -202,51 +203,78 @@
 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
@@ -517,6 +545,10 @@
 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 997c008..cdaf95b 100644
--- a/tests/language_2/language_2_kernel.status
+++ b/tests/language_2/language_2_kernel.status
@@ -255,23 +255,6 @@
 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
@@ -363,6 +346,228 @@
 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
@@ -611,6 +816,10 @@
 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
@@ -978,6 +1187,10 @@
 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 ]
@@ -1211,6 +1424,10 @@
 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 8d25350..5ba0547 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: ok
+  true ? x : x;  //# param_conditional: compile-time error
   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: ok
+  true ? f() : f();  //# call_conditional: compile-time error
   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: ok
+  true ? x : x;  //# local_conditional: compile-time error
   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: ok
+  true ? x : x;  //# final_local_conditional: compile-time error
   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: ok
+  true ? global : global;  //# global_conditional: compile-time error
   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
 }
 
-Object testVoidConditional() {
+testVoidConditional() {
   void x;
-  (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
+  (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
   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: 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
+  (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
   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: 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
+  (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
   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,20 +218,13 @@
   [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;
 
@@ -265,7 +258,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: ok
+  true ? a.x : a.x;  //# instance_conditional: compile-time error
   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
@@ -292,7 +285,7 @@
   B b = new B();
   b.x = 42;   //# field_assign2: ok
   b.x;  //# instance2_stmt: ok
-  true ? b.x : b.x;  //# instance2_conditional: ok
+  true ? b.x : b.x;  //# instance2_conditional: compile-time error
   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
@@ -320,7 +313,7 @@
   C c = new C();
   c.x = 32;   //# setter_assign: ok
   c.x;  //# instance3_stmt: ok
-  true ? c.x : c.x;  //# instance3_conditional: ok
+  true ? c.x : c.x;  //# instance3_conditional: compile-time error
   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
@@ -360,7 +353,7 @@
 Object testParenthesized() {
   void x;
   (x);  //# paren_stmt: ok
-  true ? (x) : (x);  //# paren_conditional: ok
+  true ? (x) : (x);  //# paren_conditional: compile-time error
   for ((x); false; (x)) {}   //# paren_for: ok
   use((x));   //# paren_argument: compile-time error
   use((x) as Object);  //# paren_as: ok
@@ -400,9 +393,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: ok
-  return true ? 499 : x;   //# conditional2_return_to_void: ok
-  return true ? x : 499;   //# conditional3_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 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 462fd22..29fd51d 100644
--- a/tests/lib_2/lib_2_kernel.status
+++ b/tests/lib_2/lib_2_kernel.status
@@ -224,6 +224,7 @@
 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
@@ -333,6 +334,9 @@
 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