Update tests related to generalized void

Change-Id: Iac43d86759e0ae958940bbfd2ce53286762b7207
Reviewed-on: https://dart-review.googlesource.com/64381
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
diff --git a/tests/language_2/language_2_analyzer.status b/tests/language_2/language_2_analyzer.status
index 1f82933..42452d8 100644
--- a/tests/language_2/language_2_analyzer.status
+++ b/tests/language_2/language_2_analyzer.status
@@ -219,16 +219,12 @@
 vm/regress_33469_test/01: Crash # http://dartbug.com/33481
 vm/regress_33469_test/02: Crash # http://dartbug.com/33481
 vm/regress_33469_test/03: MissingCompileTimeError # http://dartbug.com/33481
-void_type_override_test/00: MissingCompileTimeError
-void_type_override_test/00b: MissingCompileTimeError
-void_type_override_test/01: MissingCompileTimeError
 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_return: MissingCompileTimeError
 void_type_usage_test/call_void_init: MissingCompileTimeError
 void_type_usage_test/conditional2_conditional: MissingCompileTimeError
 void_type_usage_test/conditional2_for: MissingCompileTimeError
@@ -265,51 +261,41 @@
 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_return: 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_return: MissingCompileTimeError
 void_type_usage_test/global_void_init: MissingCompileTimeError
 void_type_usage_test/instance2_conditional: MissingCompileTimeError
-void_type_usage_test/instance2_for_in2: 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_return: MissingCompileTimeError
 void_type_usage_test/instance2_void_init: MissingCompileTimeError
 void_type_usage_test/instance3_conditional: MissingCompileTimeError
-void_type_usage_test/instance3_for_in2: 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_return: 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_return: 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_return: 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_return: 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
-void_type_usage_test/paren_return: MissingCompileTimeError
 void_type_usage_test/paren_void_init: MissingCompileTimeError
 web_int_literals_test/01: MissingCompileTimeError
 web_int_literals_test/02: MissingCompileTimeError
diff --git a/tests/language_2/language_2_dartdevc.status b/tests/language_2/language_2_dartdevc.status
index 009e069..1285c54 100644
--- a/tests/language_2/language_2_dartdevc.status
+++ b/tests/language_2/language_2_dartdevc.status
@@ -201,16 +201,12 @@
 void_type_callbacks_test/00: MissingCompileTimeError # Issue 30514
 void_type_callbacks_test/01: MissingCompileTimeError
 void_type_function_types_test/none: CompileTimeError # Issue 30514
-void_type_override_test/00: MissingCompileTimeError
-void_type_override_test/00b: MissingCompileTimeError
-void_type_override_test/01: MissingCompileTimeError
 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_return: MissingCompileTimeError
 void_type_usage_test/call_void_init: MissingCompileTimeError
 void_type_usage_test/conditional2_conditional: MissingCompileTimeError
 void_type_usage_test/conditional2_for: MissingCompileTimeError
@@ -247,51 +243,41 @@
 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_return: 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_return: MissingCompileTimeError
 void_type_usage_test/global_void_init: MissingCompileTimeError
 void_type_usage_test/instance2_conditional: MissingCompileTimeError
-void_type_usage_test/instance2_for_in2: 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_return: MissingCompileTimeError
 void_type_usage_test/instance2_void_init: MissingCompileTimeError
 void_type_usage_test/instance3_conditional: MissingCompileTimeError
-void_type_usage_test/instance3_for_in2: 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_return: 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_return: 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_return: 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_return: 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
-void_type_usage_test/paren_return: MissingCompileTimeError
 void_type_usage_test/paren_void_init: MissingCompileTimeError
 
 [ $compiler == dartdevk ]
diff --git a/tests/language_2/language_2_kernel.status b/tests/language_2/language_2_kernel.status
index e046a90..cdaf95b 100644
--- a/tests/language_2/language_2_kernel.status
+++ b/tests/language_2/language_2_kernel.status
@@ -351,9 +351,6 @@
 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/00: MissingCompileTimeError # Issue 32804
-void_type_override_test/00b: MissingCompileTimeError # Issue 32804
-void_type_override_test/01: 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
@@ -463,7 +460,6 @@
 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_for_in2: 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
@@ -483,7 +479,6 @@
 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_for_in2: 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
diff --git a/tests/language_2/void_type_function_types_test.dart b/tests/language_2/void_type_function_types_test.dart
index d436c85..6146c43 100644
--- a/tests/language_2/void_type_function_types_test.dart
+++ b/tests/language_2/void_type_function_types_test.dart
@@ -67,21 +67,21 @@
   Expect.isTrue(g is F);
   Expect.isTrue(g is G);
   Expect.isFalse(g is H);
-  expectsF(g); //# 04: compile-time error
+  expectsF(g);
   expectsG(g);
   expectsH(g); //# 05: compile-time error
 
   Expect.isTrue(g2 is F2);
   Expect.isTrue(g2 is G2);
   Expect.isFalse(g2 is H2);
-  expectsF2(g2); //# 06: compile-time error
+  expectsF2(g2);
   expectsG2(g2);
   expectsH2(g2); //# 07: compile-time error
 
   Expect.isTrue(g3 is F3);
   Expect.isTrue(g3 is G3);
   Expect.isFalse(g3 is H3);
-  expectsF3(g3); //# 08: compile-time error
+  expectsF3(g3);
   expectsG3(g3);
   expectsH3(g3); //# 09: compile-time error
 
diff --git a/tests/language_2/void_type_override_test.dart b/tests/language_2/void_type_override_test.dart
index eb2a740..4b13843 100644
--- a/tests/language_2/void_type_override_test.dart
+++ b/tests/language_2/void_type_override_test.dart
@@ -23,13 +23,13 @@
 }
 
 class B implements A<Object> {
-  void   //# 00: compile-time error
+  void   //# 00: ok
   /*     //# 00: continued
   var
   */     //# 00: continued
   x;
 
-  void   //# 00b: compile-time error
+  void   //# 00b: ok
   /*     //# 00b: continued
   var
   */     //# 00b: continued
@@ -41,9 +41,8 @@
   */     //# 00c: continued
   z;
 
-  // Overriding an Object function with a void function is an error.
-  void  //# 01: compile-time error
-  foo() => null;
+  void  //# 01: ok
+  foo() {}
 
   int bar() => 499;
   void gee(void x) {}
diff --git a/tests/language_2/void_type_usage_test.dart b/tests/language_2/void_type_usage_test.dart
index 135e8bd..5ba0547 100644
--- a/tests/language_2/void_type_usage_test.dart
+++ b/tests/language_2/void_type_usage_test.dart
@@ -6,7 +6,7 @@
 
 void use(dynamic x) { }
 
-testVoidParam(void x) {
+Object testVoidParam(void x) {
   x;  //# param_stmt: ok
   true ? x : x;  //# param_conditional: compile-time error
   for (x; false; x) {}   //# param_for: ok
@@ -34,7 +34,11 @@
   x..toString();  //# param_cascade: compile-time error
 }
 
-testVoidCall(void f()) {
+dynamic testVoidParamDynamic(void x) {
+  return x;   //# param_return_dynamic: ok
+}
+
+Object testVoidCall(void f()) {
   f();  //# call_stmt: ok
   true ? f() : f();  //# call_conditional: compile-time error
   for (f(); false; f()) {}   //# call_for: ok
@@ -60,7 +64,11 @@
   f()..toString();  //# call_cascade: compile-time error
 }
 
-testVoidLocal() {
+dynamic testVoidCallDynamic(void f()) {
+  return f();   //# call_return: ok
+}
+
+Object testVoidLocal() {
   void x;
   x = 42;   //# local_assign: ok
   x;  //# local_stmt: ok
@@ -90,7 +98,12 @@
   x..toString();  //# local_cascade: compile-time error
 }
 
-testVoidFinalLocal() {
+dynamic testVoidLocalDynamic() {
+  void x;
+  return x;   //# local_return_dynamic: ok
+}
+
+Object testVoidFinalLocal() {
   final void x = null;
   x = 42;   //# final_local_assign: compile-time error
   x;  //# final_local_stmt: ok
@@ -120,8 +133,13 @@
   x..toString();  //# final_local_cascade: compile-time error
 }
 
+dynamic testVoidFinalLocalDynamic() {
+  final void x = null;
+  return x;   //# final_local_return_dynamic: ok
+}
+
 void global;
-testVoidGlobal() {
+Object testVoidGlobal() {
   global;  //# global_stmt: ok
   true ? global : global;  //# global_conditional: compile-time error
   for (global; false; global) {}   //# global_for: ok
@@ -149,6 +167,10 @@
   global..toString();  //# global_cascade: compile-time error
 }
 
+dynamic testVoidGlobalDynamic() {
+  return global;   //# global_return_dynamic: ok
+}
+
 testVoidConditional() {
   void x;
   (true ? x : x);   //# conditional_parens: compile-time error
@@ -215,7 +237,7 @@
   int foo() => 499;
 
   void forInTest() {
-    for (x in <void>[]) {}  //# instance2_for_in2: compile-time error
+    for (x in <void>[]) {}  //# instance2_for_in2: ok
     for (x in [1, 2]) {}  //# instance2_for_in3: ok
   }
 }
@@ -227,12 +249,12 @@
   void foo() {}
 
   void forInTest() {
-    for (x in <void>[]) {}  //# instance3_for_in2: compile-time error
+    for (x in <void>[]) {}  //# instance3_for_in2: ok
     for (x in [1, 2]) {}  //# instance3_for_in3: ok
   }
 }
 
-testInstanceField() {
+Object testInstanceField() {
   A<void> a = new A<void>();
   a.x = 499;  //# field_assign: ok
   a.x;  //# instance_stmt: ok
@@ -317,7 +339,18 @@
   c.x..toString();  //# instance3_cascade: compile-time error
 }
 
-testParenthesized() {
+dynamic testInstanceFieldDynamic() {
+  A<void> a = new A<void>();
+  return a.x;   //# instance_return_dynamic: ok
+
+  B b = new B();
+  return b.x;   //# instance2_return_dynamic: ok
+
+  C c = new C();
+  return c.x;   //# instance3_return_dynamic: ok
+}
+
+Object testParenthesized() {
   void x;
   (x);  //# paren_stmt: ok
   true ? (x) : (x);  //# paren_conditional: compile-time error
@@ -344,6 +377,11 @@
   (x)..toString();  //# paren_cascade: compile-time error
 }
 
+dynamic testParenthesizedDynamic() {
+  void x;
+  return (x);   //# paren_return_dynamic: ok
+}
+
 void testReturnToVoid(void x, void f()) {
   void y;
   final void z = null;