Version 2.13.0-78.0.dev

Merge commit 'ead5e5c683803db2d09dc0b05ed06f25f1c6e9b7' into 'dev'
diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart
index f631b4d..af89d14 100644
--- a/pkg/kernel/lib/ast.dart
+++ b/pkg/kernel/lib/ast.dart
@@ -2108,6 +2108,9 @@
     this.transformerFlags = transformerFlags;
   }
 
+  @override
+  Class get enclosingClass => parent as Class;
+
   static const int FlagConst = 1 << 0; // Must match serialized bit positions.
   static const int FlagExternal = 1 << 1;
   static const int FlagSynthetic = 1 << 2;
@@ -2286,6 +2289,9 @@
     this.transformerFlags = transformerFlags;
   }
 
+  @override
+  Class get enclosingClass => parent as Class;
+
   static const int FlagConst = 1 << 0; // Must match serialized bit positions.
   static const int FlagExternal = 1 << 1;
   static const int FlagNonNullableByDefault = 1 << 2;
@@ -3365,7 +3371,7 @@
     // transformations like erasure don't work.
     List<TypeParameter> typeParametersCopy = new List<TypeParameter>.from(
         parent is Constructor
-            ? parent.enclosingClass!.typeParameters
+            ? parent.enclosingClass.typeParameters
             : typeParameters);
     return new FunctionType(
         positionalParameters.map(_getTypeOfVariable).toList(growable: false),
@@ -3405,7 +3411,7 @@
     // We need create a copy of the list of type parameters, otherwise
     // transformations like erasure don't work.
     List<TypeParameter> classTypeParametersCopy =
-        List.from(parentConstructor.enclosingClass!.typeParameters);
+        List.from(parentConstructor.enclosingClass.typeParameters);
     List<TypeParameter> typedefTypeParametersCopy =
         List.from(typedef.typeParameters);
     List<DartType> asTypeArguments =
@@ -6149,9 +6155,9 @@
   DartType getStaticTypeInternal(StaticTypeContext context) {
     return arguments.types.isEmpty
         ? context.typeEnvironment.coreTypes
-            .rawType(target.enclosingClass!, context.nonNullable)
+            .rawType(target.enclosingClass, context.nonNullable)
         : new InterfaceType(
-            target.enclosingClass!, context.nonNullable, arguments.types);
+            target.enclosingClass, context.nonNullable, arguments.types);
   }
 
   @override
@@ -6187,7 +6193,7 @@
 
   // TODO(dmitryas): Change the getter into a method that accepts a CoreTypes.
   InterfaceType get constructedType {
-    Class enclosingClass = target.enclosingClass!;
+    Class enclosingClass = target.enclosingClass;
     // TODO(dmitryas): Get raw type from a CoreTypes object if arguments is
     // empty.
     return arguments.types.isEmpty
@@ -6209,7 +6215,7 @@
     } else {
       printer.write('new ');
     }
-    printer.writeClassName(target.enclosingClass!.reference);
+    printer.writeClassName(target.enclosingClass.reference);
     printer.writeTypeArguments(arguments.types);
     if (target.name!.text.isNotEmpty) {
       printer.write('.');
diff --git a/pkg/kernel/lib/verifier.dart b/pkg/kernel/lib/verifier.dart
index 1ca7114..8cbf77b 100644
--- a/pkg/kernel/lib/verifier.dart
+++ b/pkg/kernel/lib/verifier.dart
@@ -645,7 +645,7 @@
           "${node.runtimeType} with incompatible arguments for '${target}'.");
     }
     int expectedTypeParameters = target is Constructor
-        ? target.enclosingClass!.typeParameters.length
+        ? target.enclosingClass.typeParameters.length
         : target.function!.typeParameters.length;
     if (node.arguments.types.length != expectedTypeParameters) {
       problem(
@@ -658,7 +658,7 @@
   @override
   visitConstructorInvocation(ConstructorInvocation node) {
     checkTargetedInvocation(node.target, node);
-    if (node.target.enclosingClass!.isAbstract) {
+    if (node.target.enclosingClass.isAbstract) {
       problem(node, "ConstructorInvocation of abstract class.");
     }
     if (node.isConst && !node.target.isConst) {
diff --git a/tools/VERSION b/tools/VERSION
index 846cd9c..8ef5f55 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 13
 PATCH 0
-PRERELEASE 77
+PRERELEASE 78
 PRERELEASE_PATCH 0
\ No newline at end of file