[vm] Reify more generics in the mirrors implementation to appease Dart 2.

Bug: https://github.com/dart-lang/sdk/issues/32889
Change-Id: Ic115a2db257eb1a70a82e727890fef8695ec8bc2
Reviewed-on: https://dart-review.googlesource.com/53693
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
diff --git a/runtime/lib/mirrors.cc b/runtime/lib/mirrors.cc
index 8783fee..362842d 100644
--- a/runtime/lib/mirrors.cc
+++ b/runtime/lib/mirrors.cc
@@ -34,7 +34,9 @@
 
   const Object& result = Object::Handle(DartLibraryCalls::InstanceCreate(
       mirrors_lib, mirror_class_name, constructor_name, constructor_arguments));
-  ASSERT(!result.IsError());
+  if (result.IsError()) {
+    Exceptions::PropagateError(Error::Cast(result));
+  }
   return Instance::Cast(result).raw();
 }
 
diff --git a/runtime/lib/mirrors_impl.dart b/runtime/lib/mirrors_impl.dart
index 6ee28f1..4688f63 100644
--- a/runtime/lib/mirrors_impl.dart
+++ b/runtime/lib/mirrors_impl.dart
@@ -4,13 +4,11 @@
 
 // part of "mirrors_patch.dart";
 
-var _dirty = false;
-// Note: _emtpyList needs to be assignable to List<T> for any T hence Null.
-final _emptyList = new UnmodifiableListView<Null>([]);
+var _dirty = false; // Set to true by the VM when more libraries are loaded.
 
-class _InternalMirrorError {
+class _InternalMirrorError extends Error {
   final String _msg;
-  const _InternalMirrorError(this._msg);
+  _InternalMirrorError(this._msg);
   String toString() => _msg;
 }
 
@@ -65,13 +63,13 @@
 
 SourceLocation _location(reflectee) native "DeclarationMirror_location";
 
-List _metadata(reflectee) native 'DeclarationMirror_metadata';
+List<dynamic> _metadata(reflectee) native 'DeclarationMirror_metadata';
 
 bool _subtypeTest(Type a, Type b) native 'TypeMirror_subtypeTest';
 
-class _AccessorCacheAssociation {
+class _AccessorCacheAssociation<T extends Function> {
   String key;
-  Function value;
+  T value;
   bool usedSinceGrowth = true;
   _AccessorCacheAssociation(this.key, this.value);
 }
@@ -82,7 +80,7 @@
  * grow again. Implemented as an open addressing hash table.
  */
 class _AccessorCache<T extends Function> {
-  List table;
+  List<_AccessorCacheAssociation<T>> table;
   int shift;
   int mask;
   int capacity; // Max number of associations before we start evicting/growing.
@@ -94,7 +92,9 @@
   _AccessorCache.withInitialShift(int shift) {
     // The scheme used here for handling collisions relies on there always
     // being at least one empty slot.
-    if (shift < 1) throw new Exception("_AccessorCache requires a shift >= 1");
+    if (shift < 1) {
+      throw new _InternalMirrorError("_AccessorCache requires a shift >= 1");
+    }
     initWithShift(shift);
   }
 
@@ -102,7 +102,7 @@
     this.shift = shift;
     this.mask = (1 << shift) - 1;
     this.capacity = (1 << shift) * 3 ~/ 4;
-    this.table = new List(1 << shift);
+    this.table = new List<_AccessorCacheAssociation<T>>(1 << shift);
     assert(table.length > capacity);
   }
 
@@ -118,7 +118,7 @@
     } while (index != start);
     // Should never happen because we start evicting associations before the
     // table is full.
-    throw new Exception("Internal error: _AccessorCache table full");
+    throw new _InternalMirrorError("Internal error: _AccessorCache table full");
   }
 
   int scanForEmpty(String key) {
@@ -132,7 +132,7 @@
     } while (index != start);
     // Should never happen because we start evicting associations before the
     // table is full.
-    throw new Exception("Internal error: _AccessorCache table full");
+    throw new _InternalMirrorError("Internal error: _AccessorCache table full");
   }
 
   void fixCollisionsAfter(int start) {
@@ -218,16 +218,19 @@
   var _libraries;
   Map<Uri, LibraryMirror> get libraries {
     if ((_libraries == null) || _dirty) {
-      _libraries = new Map<Uri, LibraryMirror>.fromIterable(_computeLibraries(),
-          key: (e) => e.uri);
+      _libraries = new Map<Uri, LibraryMirror>();
+      for (LibraryMirror lib in _computeLibraries()) {
+        _libraries[lib.uri] = lib;
+      }
+      _libraries = new UnmodifiableMapView<Uri, LibraryMirror>(_libraries);
       _dirty = false;
     }
     return _libraries;
   }
 
-  static _computeLibraries() native "MirrorSystem_libraries";
+  static List<dynamic> _computeLibraries() native "MirrorSystem_libraries";
 
-  var _isolate;
+  IsolateMirror _isolate;
   IsolateMirror get isolate {
     if (_isolate == null) {
       _isolate = _computeIsolate();
@@ -235,7 +238,7 @@
     return _isolate;
   }
 
-  static _computeIsolate() native "MirrorSystem_isolate";
+  static IsolateMirror _computeIsolate() native "MirrorSystem_isolate";
 
   String toString() => "MirrorSystem for isolate '${isolate.debugName}'";
 }
@@ -298,13 +301,13 @@
 
   TypeMirror get returnType => _target.type;
   List<ParameterMirror> get parameters {
-    if (isGetter) return _emptyList;
-    return new UnmodifiableListView(
-        [new _SyntheticSetterParameter(this, this._target)]);
+    if (isGetter) return const <ParameterMirror>[];
+    return new UnmodifiableListView<ParameterMirror>(
+        <ParameterMirror>[new _SyntheticSetterParameter(this, this._target)]);
   }
 
   SourceLocation get location => null;
-  List<InstanceMirror> get metadata => _emptyList;
+  List<InstanceMirror> get metadata => const <InstanceMirror>[];
   String get source => null;
 }
 
@@ -328,7 +331,7 @@
   bool get hasDefaultValue => false;
   InstanceMirror get defaultValue => null;
   SourceLocation get location => null;
-  List<InstanceMirror> get metadata => _emptyList;
+  List<InstanceMirror> get metadata => const <InstanceMirror>[];
 }
 
 abstract class _LocalObjectMirror extends _LocalMirror implements ObjectMirror {
@@ -608,7 +611,7 @@
     return _simpleName;
   }
 
-  Symbol _qualifiedName = null;
+  Symbol _qualifiedName;
   Symbol get qualifiedName {
     if (_qualifiedName == null) {
       _qualifiedName = _computeQualifiedName(owner, simpleName);
@@ -658,8 +661,8 @@
       _superinterfaces = isOriginalDeclaration
           ? _nativeInterfaces(_reflectedType)
           : _nativeInterfacesInstantiated(_reflectedType);
-      _superinterfaces =
-          new UnmodifiableListView(_superinterfaces.map(reflectType));
+      _superinterfaces = new UnmodifiableListView<ClassMirror>(
+          _superinterfaces.map(reflectType));
     }
     return _superinterfaces;
   }
@@ -787,10 +790,12 @@
     return true;
   }
 
-  List<TypeVariableMirror> _typeVariables = null;
+  List<TypeVariableMirror> _typeVariables;
   List<TypeVariableMirror> get typeVariables {
     if (_typeVariables == null) {
-      if (_isAnonymousMixinApplication) return _typeVariables = _emptyList;
+      if (_isAnonymousMixinApplication) {
+        return _typeVariables = const <TypeVariableMirror>[];
+      }
       _typeVariables = new List<TypeVariableMirror>();
 
       List params = _ClassMirror_type_variables(_reflectee);
@@ -800,19 +805,20 @@
         mirror = new _LocalTypeVariableMirror(params[i + 1], params[i], owner);
         _typeVariables.add(mirror);
       }
-      _typeVariables = new UnmodifiableListView(_typeVariables);
+      _typeVariables =
+          new UnmodifiableListView<TypeVariableMirror>(_typeVariables);
     }
     return _typeVariables;
   }
 
-  List<TypeMirror> _typeArguments = null;
+  List<TypeMirror> _typeArguments;
   List<TypeMirror> get typeArguments {
     if (_typeArguments == null) {
       if (_isGenericDeclaration || _isAnonymousMixinApplication) {
-        _typeArguments = _emptyList;
+        _typeArguments = const <TypeMirror>[];
       } else {
-        _typeArguments =
-            new UnmodifiableListView(_computeTypeArguments(_reflectedType));
+        _typeArguments = new UnmodifiableListView<TypeMirror>(
+            _computeTypeArguments(_reflectedType).cast<TypeMirror>());
       }
     }
     return _typeArguments;
@@ -856,7 +862,8 @@
   List<InstanceMirror> get metadata {
     // Get the metadata objects, convert them into InstanceMirrors using
     // reflect() and then make them into a Dart list.
-    return new UnmodifiableListView(_metadata(_reflectee).map(reflect));
+    return new UnmodifiableListView<InstanceMirror>(
+        _metadata(_reflectee).map(reflect));
   }
 
   bool operator ==(other) {
@@ -895,26 +902,28 @@
     return false;
   }
 
-  static _libraryUri(reflectee) native "ClassMirror_libraryUri";
+  static String _libraryUri(reflectee) native "ClassMirror_libraryUri";
 
-  static _supertype(reflectedType) native "ClassMirror_supertype";
+  static Type _supertype(reflectedType) native "ClassMirror_supertype";
 
-  static _supertypeInstantiated(reflectedType)
+  static Type _supertypeInstantiated(reflectedType)
       native "ClassMirror_supertype_instantiated";
 
-  static _nativeInterfaces(reflectedType) native "ClassMirror_interfaces";
+  static List<dynamic> _nativeInterfaces(reflectedType)
+      native "ClassMirror_interfaces";
 
-  static _nativeInterfacesInstantiated(reflectedType)
+  static List<dynamic> _nativeInterfacesInstantiated(reflectedType)
       native "ClassMirror_interfaces_instantiated";
 
-  static _nativeMixin(reflectedType) native "ClassMirror_mixin";
+  static Type _nativeMixin(reflectedType) native "ClassMirror_mixin";
 
-  static _nativeMixinInstantiated(reflectedType, instantiator)
+  static Type _nativeMixinInstantiated(reflectedType, instantiator)
       native "ClassMirror_mixin_instantiated";
 
-  _computeMembers(reflectee, instantiator) native "ClassMirror_members";
+  List<dynamic> _computeMembers(reflectee, instantiator)
+      native "ClassMirror_members";
 
-  _computeConstructors(reflectee, instantiator)
+  List<dynamic> _computeConstructors(reflectee, instantiator)
       native "ClassMirror_constructors";
 
   _invoke(reflectee, memberName, arguments, argumentNames)
@@ -927,10 +936,11 @@
   static _invokeConstructor(reflectee, type, constructorName, arguments,
       argumentNames) native 'ClassMirror_invokeConstructor';
 
-  static _ClassMirror_type_variables(reflectee)
+  static List<dynamic> _ClassMirror_type_variables(reflectee)
       native "ClassMirror_type_variables";
 
-  static _computeTypeArguments(reflectee) native "ClassMirror_type_arguments";
+  static List<dynamic> _computeTypeArguments(reflectee)
+      native "ClassMirror_type_arguments";
 }
 
 class _LocalFunctionTypeMirror extends _LocalClassMirror
@@ -943,7 +953,7 @@
   bool get _isAnonymousMixinApplication => false;
 
   // FunctionTypeMirrors have a simpleName generated from their signature.
-  Symbol _simpleName = null;
+  Symbol _simpleName;
   Symbol get simpleName {
     if (_simpleName == null) {
       _simpleName = _s(_makeSignatureString(returnType, parameters));
@@ -959,7 +969,7 @@
     return _callMethod;
   }
 
-  TypeMirror _returnType = null;
+  TypeMirror _returnType;
   TypeMirror get returnType {
     if (_returnType == null) {
       _returnType =
@@ -968,20 +978,20 @@
     return _returnType;
   }
 
-  List<ParameterMirror> _parameters = null;
+  List<ParameterMirror> _parameters;
   List<ParameterMirror> get parameters {
     if (_parameters == null) {
       _parameters = _FunctionTypeMirror_parameters(_functionReflectee);
-      _parameters = new UnmodifiableListView(_parameters);
+      _parameters = new UnmodifiableListView<ParameterMirror>(_parameters);
     }
     return _parameters;
   }
 
   bool get isOriginalDeclaration => true;
   ClassMirror get originalDeclaration => this;
-  get typeVariables => _emptyList;
-  get typeArguments => _emptyList;
-  get metadata => _emptyList;
+  get typeVariables => const <TypeVariableMirror>[];
+  get typeArguments => const <TypeMirror>[];
+  get metadata => const <InstanceMirror>[];
   get location => null;
 
   String toString() => "FunctionTypeMirror on '${_n(simpleName)}'";
@@ -992,7 +1002,7 @@
   static Type _FunctionTypeMirror_return_type(functionReflectee)
       native "FunctionTypeMirror_return_type";
 
-  List<ParameterMirror> _FunctionTypeMirror_parameters(functionReflectee)
+  List<dynamic> _FunctionTypeMirror_parameters(functionReflectee)
       native "FunctionTypeMirror_parameters";
 }
 
@@ -1005,7 +1015,7 @@
 
   Symbol get simpleName => _simpleName;
 
-  Symbol _qualifiedName = null;
+  Symbol _qualifiedName;
   Symbol get qualifiedName {
     if (_qualifiedName == null) {
       _qualifiedName = _computeQualifiedName(owner, simpleName);
@@ -1022,7 +1032,8 @@
   List<InstanceMirror> get metadata {
     // Get the metadata objects, convert them into InstanceMirrors using
     // reflect() and then make them into a Dart list.
-    return new UnmodifiableListView(_metadata(_reflectee).map(reflect));
+    return new UnmodifiableListView<InstanceMirror>(
+        _metadata(_reflectee).map(reflect));
   }
 
   bool operator ==(other) {
@@ -1050,7 +1061,7 @@
   bool get isStatic => false;
   bool get isTopLevel => false;
 
-  TypeMirror _upperBound = null;
+  TypeMirror _upperBound;
   TypeMirror get upperBound {
     if (_upperBound == null) {
       _upperBound = reflectType(_TypeVariableMirror_upper_bound(_reflectee));
@@ -1065,8 +1076,8 @@
 
   Type get _reflectedType => _reflectee;
 
-  List<TypeVariableMirror> get typeVariables => _emptyList;
-  List<TypeMirror> get typeArguments => _emptyList;
+  List<TypeVariableMirror> get typeVariables => const <TypeVariableMirror>[];
+  List<TypeMirror> get typeArguments => const <TypeMirror>[];
 
   bool get isOriginalDeclaration => true;
   TypeMirror get originalDeclaration => this;
@@ -1124,7 +1135,7 @@
     return _owner;
   }
 
-  _LocalFunctionTypeMirror _referent = null;
+  _LocalFunctionTypeMirror _referent;
   FunctionTypeMirror get referent {
     if (_referent == null) {
       _referent = _nativeReferent(_reflectedType);
@@ -1152,7 +1163,7 @@
     }
   }
 
-  List<TypeVariableMirror> _typeVariables = null;
+  List<TypeVariableMirror> _typeVariables;
   List<TypeVariableMirror> get typeVariables {
     if (_typeVariables == null) {
       _typeVariables = new List<TypeVariableMirror>();
@@ -1167,14 +1178,15 @@
     return _typeVariables;
   }
 
-  List<TypeMirror> _typeArguments = null;
+  List<TypeMirror> _typeArguments;
   List<TypeMirror> get typeArguments {
     if (_typeArguments == null) {
       if (_isGenericDeclaration) {
-        _typeArguments = _emptyList;
+        _typeArguments = const <TypeMirror>[];
       } else {
-        _typeArguments = new UnmodifiableListView(
-            _LocalClassMirror._computeTypeArguments(_reflectedType));
+        _typeArguments = new UnmodifiableListView<TypeMirror>(_LocalClassMirror
+            ._computeTypeArguments(_reflectedType)
+            .cast<TypeMirror>());
       }
     }
     return _typeArguments;
@@ -1197,9 +1209,11 @@
         _subtypeTest(otherReflectedType, _reflectedType);
   }
 
-  static _nativeReferent(reflectedType) native "TypedefMirror_referent";
+  static FunctionTypeMirror _nativeReferent(reflectedType)
+      native "TypedefMirror_referent";
 
-  static _nativeDeclaration(reflectedType) native "TypedefMirror_declaration";
+  static TypedefMirror _nativeDeclaration(reflectedType)
+      native "TypedefMirror_declaration";
 }
 
 Symbol _asSetter(Symbol getter, LibraryMirror library) {
@@ -1247,7 +1261,8 @@
   List<InstanceMirror> get metadata {
     // Get the metadata objects, convert them into InstanceMirrors using
     // reflect() and then make them into a Dart list.
-    return new UnmodifiableListView(_metadata(_reflectee).map(reflect));
+    return new UnmodifiableListView<InstanceMirror>(
+        _metadata(_reflectee).map(reflect));
   }
 
   bool operator ==(other) {
@@ -1262,12 +1277,15 @@
   var _cachedLibraryDependencies;
   get libraryDependencies {
     if (_cachedLibraryDependencies == null) {
-      _cachedLibraryDependencies = _libraryDependencies(_reflectee);
+      _cachedLibraryDependencies =
+          new UnmodifiableListView<LibraryDependencyMirror>(
+              _libraryDependencies(_reflectee).cast<LibraryDependencyMirror>());
     }
     return _cachedLibraryDependencies;
   }
 
-  _libraryDependencies(reflectee) native 'LibraryMirror_libraryDependencies';
+  List<dynamic> _libraryDependencies(reflectee)
+      native 'LibraryMirror_libraryDependencies';
 
   _invoke(reflectee, memberName, arguments, argumentNames)
       native 'LibraryMirror_invoke';
@@ -1277,7 +1295,7 @@
   _invokeSetter(reflectee, setterName, value)
       native 'LibraryMirror_invokeSetter';
 
-  _computeMembers(reflectee) native "LibraryMirror_members";
+  List<dynamic> _computeMembers(reflectee) native "LibraryMirror_members";
 }
 
 class _LocalLibraryDependencyMirror extends _LocalMirror
@@ -1297,9 +1315,10 @@
       prefixString,
       this.isImport,
       this.isDeferred,
-      unwrappedMetadata)
+      List<dynamic> unwrappedMetadata)
       : prefix = _s(prefixString),
-        metadata = new UnmodifiableListView(unwrappedMetadata.map(reflect));
+        metadata = new UnmodifiableListView<InstanceMirror>(
+            unwrappedMetadata.map(reflect));
 
   bool get isExport => !isImport;
 
@@ -1324,7 +1343,8 @@
     });
   }
 
-  static _tryUpgradePrefix(libraryPrefix) native "LibraryMirror_fromPrefix";
+  static LibraryMirror _tryUpgradePrefix(libraryPrefix)
+      native "LibraryMirror_fromPrefix";
 
   SourceLocation get location => null;
 }
@@ -1395,7 +1415,7 @@
   bool get isTopLevel => owner is LibraryMirror;
   bool get isSynthetic => false;
 
-  TypeMirror _returnType = null;
+  TypeMirror _returnType;
   TypeMirror get returnType {
     if (_returnType == null) {
       if (isConstructor) {
@@ -1408,18 +1428,18 @@
     return _returnType;
   }
 
-  List<ParameterMirror> _parameters = null;
+  List<ParameterMirror> _parameters;
   List<ParameterMirror> get parameters {
     if (_parameters == null) {
-      _parameters = _MethodMirror_parameters(_reflectee);
-      _parameters = new UnmodifiableListView(_parameters);
+      _parameters = new UnmodifiableListView<ParameterMirror>(
+          _MethodMirror_parameters(_reflectee).cast<ParameterMirror>());
     }
     return _parameters;
   }
 
   bool get isRegularMethod => !isGetter && !isSetter && !isConstructor;
 
-  Symbol _constructorName = null;
+  Symbol _constructorName;
   Symbol get constructorName {
     if (_constructorName == null) {
       if (!isConstructor) {
@@ -1460,7 +1480,7 @@
   static dynamic _MethodMirror_return_type(reflectee, instantiator)
       native "MethodMirror_return_type";
 
-  List<ParameterMirror> _MethodMirror_parameters(reflectee)
+  List<dynamic> _MethodMirror_parameters(reflectee)
       native "MethodMirror_parameters";
 
   static String _MethodMirror_source(reflectee) native "MethodMirror_source";
@@ -1553,11 +1573,12 @@
   }
 
   List<InstanceMirror> get metadata {
-    if (_unmirroredMetadata == null) return _emptyList;
-    return new UnmodifiableListView(_unmirroredMetadata.map(reflect));
+    if (_unmirroredMetadata == null) return const <InstanceMirror>[];
+    return new UnmodifiableListView<InstanceMirror>(
+        _unmirroredMetadata.map(reflect));
   }
 
-  TypeMirror _type = null;
+  TypeMirror _type;
   TypeMirror get type {
     if (_type == null) {
       _type = reflectType(
@@ -1584,7 +1605,7 @@
   DeclarationMirror get owner => null;
 
   SourceLocation get location => null;
-  List<InstanceMirror> get metadata => _emptyList;
+  List<InstanceMirror> get metadata => const <InstanceMirror>[];
 
   bool get hasReflectedType => simpleName == #dynamic;
   Type get reflectedType {
@@ -1592,8 +1613,8 @@
     throw new UnsupportedError("void has no reflected type");
   }
 
-  List<TypeVariableMirror> get typeVariables => _emptyList;
-  List<TypeMirror> get typeArguments => _emptyList;
+  List<TypeVariableMirror> get typeVariables => const <TypeVariableMirror>[];
+  List<TypeMirror> get typeArguments => const <TypeMirror>[];
 
   bool get isOriginalDeclaration => true;
   TypeMirror get originalDeclaration => this;
diff --git a/tests/lib_2/lib_2_kernel.status b/tests/lib_2/lib_2_kernel.status
index db296c2..fbfe46a 100644
--- a/tests/lib_2/lib_2_kernel.status
+++ b/tests/lib_2/lib_2_kernel.status
@@ -118,14 +118,11 @@
 mirrors/generic_interface_test/none: RuntimeError
 mirrors/generic_mixin_applications_test: RuntimeError
 mirrors/generic_mixin_test: RuntimeError
-mirrors/generics_double_substitution_test/01: RuntimeError
-mirrors/generics_double_substitution_test/none: RuntimeError
 mirrors/generics_dynamic_test: RuntimeError
-mirrors/generics_substitution_test: RuntimeError
-mirrors/generics_test/none: RuntimeError
 mirrors/hot_get_field_test: RuntimeError
 mirrors/hot_set_field_test: RuntimeError
 mirrors/intercepted_object_test: RuntimeError # Issue 31402 (Invocation arguments)
+mirrors/invocation_fuzz_test: RuntimeError, Crash
 mirrors/invoke_private_test: RuntimeError
 mirrors/invoke_private_wrong_library_test: RuntimeError
 mirrors/library_declarations_test/none: RuntimeError # Issue 31402 (Invocation arguments)
@@ -165,10 +162,7 @@
 mirrors/other_declarations_location_test: RuntimeError
 mirrors/parameter_annotation_mirror_test: RuntimeError
 mirrors/parameter_metadata_test: RuntimeError
-mirrors/parameter_metadata_test: Crash
 mirrors/parameter_of_mixin_app_constructor_test: RuntimeError # Issue 31402 (Invocation arguments)
-mirrors/parameter_test/01: CompileTimeError # Issue 31402 (Invocation arguments)
-mirrors/parameter_test/none: CompileTimeError # Issue 31402 (Invocation arguments)
 mirrors/private_class_field_test: RuntimeError
 mirrors/private_field_test: RuntimeError
 mirrors/private_symbol_test: RuntimeError
@@ -194,7 +188,6 @@
 mirrors/symbol_validation_test/none: RuntimeError # Issue 31537
 mirrors/type_variable_is_static_test: RuntimeError
 mirrors/type_variable_owner_test/01: RuntimeError
-mirrors/typearguments_mirror_test: CompileTimeError # Issue 31402 (Invocation arguments)
 mirrors/typedef_deferred_library_test: CompileTimeError # Deferred loading kernel issue 28335.
 mirrors/typedef_deferred_library_test: RuntimeError
 mirrors/typedef_in_signature_test: RuntimeError
@@ -223,44 +216,27 @@
 isolate/ping_pause_test: RuntimeError
 isolate/request_reply_test: Pass, Timeout
 isolate/stacktrace_message_test: RuntimeError
-mirrors/class_mirror_type_variables_test: RuntimeError
 mirrors/constructor_optional_args_test: RuntimeError
 mirrors/constructors_test: RuntimeError
 mirrors/fake_function_with_call_test: RuntimeError
-mirrors/generic_bounded_by_type_parameter_test/none: RuntimeError
-mirrors/generic_bounded_test/none: RuntimeError
-mirrors/generic_f_bounded_test/01: RuntimeError
-mirrors/generic_f_bounded_test/none: RuntimeError
-mirrors/generic_local_function_test: RuntimeError
 mirrors/generic_superclass_test/01: RuntimeError
 mirrors/generic_superclass_test/none: RuntimeError
-mirrors/generic_type_mirror_test: RuntimeError
 mirrors/hierarchy_invariants_test: RuntimeError
 mirrors/immutable_collections_test: RuntimeError
-mirrors/initializing_formals_test/01: RuntimeError
-mirrors/initializing_formals_test/03: RuntimeError
-mirrors/initializing_formals_test/none: RuntimeError
 mirrors/instance_members_easier_test: RuntimeError
 mirrors/instance_members_test: RuntimeError
 mirrors/instance_members_unimplemented_interface_test: RuntimeError
 mirrors/instance_members_with_override_test: RuntimeError
-mirrors/instantiate_abstract_class_test: RuntimeError
 mirrors/invoke_closurization2_test: RuntimeError
 mirrors/invoke_throws_test: RuntimeError
-mirrors/library_imports_bad_metadata_test/none: RuntimeError, Crash # Issue 32879
 mirrors/metadata_const_map_test: Crash
 mirrors/mixin_members_test: RuntimeError
 mirrors/null_test: RuntimeError
 mirrors/operator_test: RuntimeError
-mirrors/parameter_is_const_test/none: RuntimeError
-mirrors/parameter_test/01: RuntimeError
-mirrors/parameter_test/none: RuntimeError
 mirrors/redirecting_factory_different_type_test/02: MissingCompileTimeError
 mirrors/redirecting_factory_different_type_test/none: RuntimeError
 mirrors/regress_16321_test/none: Crash
 mirrors/top_level_accessors_test/01: MissingCompileTimeError
-mirrors/type_argument_is_type_variable_test: RuntimeError
-mirrors/typearguments_mirror_test: RuntimeError
 
 # 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