Version 2.12.0-257.0.dev

Merge commit '40b9650b674e515dc893edb463d890b796d4bc0a' into 'dev'
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b958615..75ddaaa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -99,6 +99,46 @@
 * Removed the `--use-fasta-parser`, `--preview-dart-2`, and
   `--enable-assert-initializers` command line options. These options haven't
   been supported in a while and were no-ops.
+* Report diagnostics regarding the
+  [`@internal`](https://pub.dev/documentation/meta/latest/meta/internal-constant.html)
+  annotation.
+* Improve diagnostic-reporting regarding the
+  [`@doNotStore`](https://pub.dev/documentation/meta/latest/meta/doNotStore-constant.html)
+  annotation.
+* Introduce a diagnostic which is reported when a library member named `main`
+  is not a function.
+* Introduce a diagnostic which is reported when a `main` function's first
+  parameter is not a supertype of `List<String>`.
+* Introduce a diagnostic which is reported when an `// ignore` comment contains
+  an error code which is not being reported.
+* Introduce a diagnostic which is reported when an `// ignore` comment contains
+  an error code which cannot be ignored.
+* Introduce a diagnostic which is reported when an `// ignore` comment contains
+  an error code which is already being ignored.
+* Report diagnostics when using
+  [`@visibleForTesting`](https://pub.dev/documentation/meta/latest/meta/visibleForTesting-constant.html)
+  on top-level variables.
+* Fix false positive reports of "unused element" for top-level setters and
+  getters.
+* Fix false positive reports regarding `@deprecated` field formal parameters at
+  their declaration.
+* For null safety, introduce a diagnostic which reports when a null-check will
+  always fail.
+* Fix false positive reports regarding optional parameters on privat
+  constructors being unused.
+* Introduce a diagnostic which is reported when a constructor includes
+  duplicate field formal parameters.
+* Improve the "unused import" diagnostic when multiple import directives share
+  a common prefix.
+* Fix false positive "unused import" diagnostic regarding an import which
+  provides an extension method which is used.
+* For null safety, improve the messaging of "use of nullable value" diagnostics
+  for eight different contexts.
+* Fix false positive reports regarding `@visibleForTesting` members in a "hide"
+  combinator of an import or export directive.
+* Improve the messaging of "invalid override" diagnostics.
+* Introduce a diagnostic which is reported when `Future<T>.catchError` is
+  called with an `onError` callback which does not return `FutureOr<T>`.
 
 #### dartfmt
 
diff --git a/DEPS b/DEPS
index 32a1981..2c8fd54 100644
--- a/DEPS
+++ b/DEPS
@@ -44,7 +44,7 @@
   # co19 is a cipd package. Use update.sh in tests/co19[_2] to update these
   # hashes. It requires access to the dart-build-access group, which EngProd
   # has.
-  "co19_rev": "d8e25398102add0ac1e732850928bd44c78f2447",
+  "co19_rev": "103d027d38472f9871b66fb0c2b01cc91c858c9f",
   "co19_2_rev": "e48b3090826cf40b8037648f19d211e8eab1b4b6",
 
   # The internal benchmarks to use. See go/dart-benchmarks-internal
@@ -133,7 +133,7 @@
   "ply_rev": "604b32590ffad5cbb82e4afef1d305512d06ae93",
   "pool_rev": "7abe634002a1ba8a0928eded086062f1307ccfae",
   "protobuf_rev": "0d03fd588df69e9863e2a2efc0059dee8f18d5b2",
-  "pub_rev": "0402c467547daa5886352cb315338ae54552d21c",
+  "pub_rev": "0e657414a472e74ca5dd76ae0db50cc060251dec",
   "pub_semver_rev": "10569a1e867e909cf5db201f73118020453e5db8",
   "resource_rev": "6b79867d0becf5395e5819a75720963b8298e9a7",
   "root_certificates_rev": "7e5ec82c99677a2e5b95ce296c4d68b0d3378ed8",
diff --git a/pkg/analysis_server/doc/api.html b/pkg/analysis_server/doc/api.html
index 3d33316..42a0c71 100644
--- a/pkg/analysis_server/doc/api.html
+++ b/pkg/analysis_server/doc/api.html
@@ -109,7 +109,7 @@
 <body>
 <h1>Analysis Server API Specification</h1>
 <h1 style="color:#999999">Version
-  1.32.3
+  1.32.4
 </h1>
 <p>
   This document contains a specification of the API provided by the
@@ -236,6 +236,11 @@
   ignoring the item or treating it with some default/fallback handling.
 </p>
 <h3>Changelog</h3>
+<h4>1.32.4</h4>
+<ul>
+  <li>Added <tt>ElementKind.TYPE_ALIAS</tt> and <tt>HighlightRegionType.TYPE_ALIAS</tt>
+    for non-function type aliases.</li>
+</ul>
 <h4>1.32.3</h4>
 <ul>
   <li>Removed the experimental <tt>completion.listTokenDetails</tt> request and
@@ -3833,7 +3838,7 @@
       An enumeration of the kinds of elements.
     </p>
     
-  <dl><dt class="value">CLASS</dt><dt class="value">CLASS_TYPE_ALIAS</dt><dt class="value">COMPILATION_UNIT</dt><dt class="value">CONSTRUCTOR</dt><dt class="value">CONSTRUCTOR_INVOCATION</dt><dt class="value">ENUM</dt><dt class="value">ENUM_CONSTANT</dt><dt class="value">EXTENSION</dt><dt class="value">FIELD</dt><dt class="value">FILE</dt><dt class="value">FUNCTION</dt><dt class="value">FUNCTION_INVOCATION</dt><dt class="value">FUNCTION_TYPE_ALIAS</dt><dt class="value">GETTER</dt><dt class="value">LABEL</dt><dt class="value">LIBRARY</dt><dt class="value">LOCAL_VARIABLE</dt><dt class="value">METHOD</dt><dt class="value">MIXIN</dt><dt class="value">PARAMETER</dt><dt class="value">PREFIX</dt><dt class="value">SETTER</dt><dt class="value">TOP_LEVEL_VARIABLE</dt><dt class="value">TYPE_PARAMETER</dt><dt class="value">UNIT_TEST_GROUP</dt><dt class="value">UNIT_TEST_TEST</dt><dt class="value">UNKNOWN</dt></dl></dd><dt class="typeDefinition"><a name="type_ExecutableFile">ExecutableFile: object</a></dt><dd>
+  <dl><dt class="value">CLASS</dt><dt class="value">CLASS_TYPE_ALIAS</dt><dt class="value">COMPILATION_UNIT</dt><dt class="value">CONSTRUCTOR</dt><dt class="value">CONSTRUCTOR_INVOCATION</dt><dt class="value">ENUM</dt><dt class="value">ENUM_CONSTANT</dt><dt class="value">EXTENSION</dt><dt class="value">FIELD</dt><dt class="value">FILE</dt><dt class="value">FUNCTION</dt><dt class="value">FUNCTION_INVOCATION</dt><dt class="value">FUNCTION_TYPE_ALIAS</dt><dt class="value">GETTER</dt><dt class="value">LABEL</dt><dt class="value">LIBRARY</dt><dt class="value">LOCAL_VARIABLE</dt><dt class="value">METHOD</dt><dt class="value">MIXIN</dt><dt class="value">PARAMETER</dt><dt class="value">PREFIX</dt><dt class="value">SETTER</dt><dt class="value">TOP_LEVEL_VARIABLE</dt><dt class="value">TYPE_ALIAS</dt><dt class="value">TYPE_PARAMETER</dt><dt class="value">UNIT_TEST_GROUP</dt><dt class="value">UNIT_TEST_TEST</dt><dt class="value">UNKNOWN</dt></dl></dd><dt class="typeDefinition"><a name="type_ExecutableFile">ExecutableFile: object</a></dt><dd>
     <p>
       A description of an executable file.
     </p>
@@ -4329,7 +4334,7 @@
       </dd><dt class="value">TOP_LEVEL_VARIABLE</dt><dd>
         
         <p>Deprecated - no longer sent.</p>
-      </dd><dt class="value">PARAMETER_DECLARATION</dt><dt class="value">PARAMETER_REFERENCE</dt><dt class="value">STATIC_FIELD_DECLARATION</dt><dt class="value">STATIC_GETTER_DECLARATION</dt><dt class="value">STATIC_GETTER_REFERENCE</dt><dt class="value">STATIC_METHOD_DECLARATION</dt><dt class="value">STATIC_METHOD_REFERENCE</dt><dt class="value">STATIC_SETTER_DECLARATION</dt><dt class="value">STATIC_SETTER_REFERENCE</dt><dt class="value">TOP_LEVEL_FUNCTION_DECLARATION</dt><dt class="value">TOP_LEVEL_FUNCTION_REFERENCE</dt><dt class="value">TOP_LEVEL_GETTER_DECLARATION</dt><dt class="value">TOP_LEVEL_GETTER_REFERENCE</dt><dt class="value">TOP_LEVEL_SETTER_DECLARATION</dt><dt class="value">TOP_LEVEL_SETTER_REFERENCE</dt><dt class="value">TOP_LEVEL_VARIABLE_DECLARATION</dt><dt class="value">TYPE_NAME_DYNAMIC</dt><dt class="value">TYPE_PARAMETER</dt><dt class="value">UNRESOLVED_INSTANCE_MEMBER_REFERENCE</dt><dt class="value">VALID_STRING_ESCAPE</dt></dl></dd><dt class="typeDefinition"><a name="type_HoverInformation">HoverInformation: object</a></dt><dd>
+      </dd><dt class="value">PARAMETER_DECLARATION</dt><dt class="value">PARAMETER_REFERENCE</dt><dt class="value">STATIC_FIELD_DECLARATION</dt><dt class="value">STATIC_GETTER_DECLARATION</dt><dt class="value">STATIC_GETTER_REFERENCE</dt><dt class="value">STATIC_METHOD_DECLARATION</dt><dt class="value">STATIC_METHOD_REFERENCE</dt><dt class="value">STATIC_SETTER_DECLARATION</dt><dt class="value">STATIC_SETTER_REFERENCE</dt><dt class="value">TOP_LEVEL_FUNCTION_DECLARATION</dt><dt class="value">TOP_LEVEL_FUNCTION_REFERENCE</dt><dt class="value">TOP_LEVEL_GETTER_DECLARATION</dt><dt class="value">TOP_LEVEL_GETTER_REFERENCE</dt><dt class="value">TOP_LEVEL_SETTER_DECLARATION</dt><dt class="value">TOP_LEVEL_SETTER_REFERENCE</dt><dt class="value">TOP_LEVEL_VARIABLE_DECLARATION</dt><dt class="value">TYPE_ALIAS</dt><dt class="value">TYPE_NAME_DYNAMIC</dt><dt class="value">TYPE_PARAMETER</dt><dt class="value">UNRESOLVED_INSTANCE_MEMBER_REFERENCE</dt><dt class="value">VALID_STRING_ESCAPE</dt></dl></dd><dt class="typeDefinition"><a name="type_HoverInformation">HoverInformation: object</a></dt><dd>
     <p>
       The hover information associated with a specific location.
     </p>
diff --git a/pkg/analysis_server/lib/protocol/protocol_constants.dart b/pkg/analysis_server/lib/protocol/protocol_constants.dart
index ff997f0..9b566ba 100644
--- a/pkg/analysis_server/lib/protocol/protocol_constants.dart
+++ b/pkg/analysis_server/lib/protocol/protocol_constants.dart
@@ -6,7 +6,7 @@
 // To regenerate the file, use the script
 // "pkg/analysis_server/tool/spec/generate_files".
 
-const String PROTOCOL_VERSION = '1.32.3';
+const String PROTOCOL_VERSION = '1.32.4';
 
 const String ANALYSIS_NOTIFICATION_ANALYZED_FILES = 'analysis.analyzedFiles';
 const String ANALYSIS_NOTIFICATION_ANALYZED_FILES_DIRECTORIES = 'directories';
diff --git a/pkg/analysis_server/test/integration/support/protocol_matchers.dart b/pkg/analysis_server/test/integration/support/protocol_matchers.dart
index fee1c3e..354583b 100644
--- a/pkg/analysis_server/test/integration/support/protocol_matchers.dart
+++ b/pkg/analysis_server/test/integration/support/protocol_matchers.dart
@@ -448,6 +448,7 @@
 ///   PREFIX
 ///   SETTER
 ///   TOP_LEVEL_VARIABLE
+///   TYPE_ALIAS
 ///   TYPE_PARAMETER
 ///   UNIT_TEST_GROUP
 ///   UNIT_TEST_TEST
@@ -477,6 +478,7 @@
   'PREFIX',
   'SETTER',
   'TOP_LEVEL_VARIABLE',
+  'TYPE_ALIAS',
   'TYPE_PARAMETER',
   'UNIT_TEST_GROUP',
   'UNIT_TEST_TEST',
@@ -846,6 +848,7 @@
 ///   TOP_LEVEL_SETTER_DECLARATION
 ///   TOP_LEVEL_SETTER_REFERENCE
 ///   TOP_LEVEL_VARIABLE_DECLARATION
+///   TYPE_ALIAS
 ///   TYPE_NAME_DYNAMIC
 ///   TYPE_PARAMETER
 ///   UNRESOLVED_INSTANCE_MEMBER_REFERENCE
@@ -921,6 +924,7 @@
   'TOP_LEVEL_SETTER_DECLARATION',
   'TOP_LEVEL_SETTER_REFERENCE',
   'TOP_LEVEL_VARIABLE_DECLARATION',
+  'TYPE_ALIAS',
   'TYPE_NAME_DYNAMIC',
   'TYPE_PARAMETER',
   'UNRESOLVED_INSTANCE_MEMBER_REFERENCE',
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/ElementKind.java b/pkg/analysis_server/tool/spec/generated/java/types/ElementKind.java
index 5fe4e7b..81be704 100644
--- a/pkg/analysis_server/tool/spec/generated/java/types/ElementKind.java
+++ b/pkg/analysis_server/tool/spec/generated/java/types/ElementKind.java
@@ -61,6 +61,8 @@
 
   public static final String TOP_LEVEL_VARIABLE = "TOP_LEVEL_VARIABLE";
 
+  public static final String TYPE_ALIAS = "TYPE_ALIAS";
+
   public static final String TYPE_PARAMETER = "TYPE_PARAMETER";
 
   public static final String UNIT_TEST_GROUP = "UNIT_TEST_GROUP";
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/HighlightRegionType.java b/pkg/analysis_server/tool/spec/generated/java/types/HighlightRegionType.java
index 2b1e1d2..65f636a 100644
--- a/pkg/analysis_server/tool/spec/generated/java/types/HighlightRegionType.java
+++ b/pkg/analysis_server/tool/spec/generated/java/types/HighlightRegionType.java
@@ -195,6 +195,8 @@
 
   public static final String TOP_LEVEL_VARIABLE_DECLARATION = "TOP_LEVEL_VARIABLE_DECLARATION";
 
+  public static final String TYPE_ALIAS = "TYPE_ALIAS";
+
   public static final String TYPE_NAME_DYNAMIC = "TYPE_NAME_DYNAMIC";
 
   public static final String TYPE_PARAMETER = "TYPE_PARAMETER";
diff --git a/pkg/analysis_server/tool/spec/spec_input.html b/pkg/analysis_server/tool/spec/spec_input.html
index 536cad8..a2c3b0a 100644
--- a/pkg/analysis_server/tool/spec/spec_input.html
+++ b/pkg/analysis_server/tool/spec/spec_input.html
@@ -7,7 +7,7 @@
 <body>
 <h1>Analysis Server API Specification</h1>
 <h1 style="color:#999999">Version
-  <version>1.32.3</version>
+  <version>1.32.4</version>
 </h1>
 <p>
   This document contains a specification of the API provided by the
@@ -134,6 +134,11 @@
   ignoring the item or treating it with some default/fallback handling.
 </p>
 <h3>Changelog</h3>
+<h4>1.32.4</h4>
+<ul>
+  <li>Added <tt>ElementKind.TYPE_ALIAS</tt> and <tt>HighlightRegionType.TYPE_ALIAS</tt>
+    for non-function type aliases.</li>
+</ul>
 <h4>1.32.3</h4>
 <ul>
   <li>Removed the experimental <tt>completion.listTokenDetails</tt> request and
diff --git a/pkg/analysis_server_client/lib/src/protocol/protocol_common.dart b/pkg/analysis_server_client/lib/src/protocol/protocol_common.dart
index 2b61453..cb6ab86 100644
--- a/pkg/analysis_server_client/lib/src/protocol/protocol_common.dart
+++ b/pkg/analysis_server_client/lib/src/protocol/protocol_common.dart
@@ -1718,6 +1718,7 @@
 ///   PREFIX
 ///   SETTER
 ///   TOP_LEVEL_VARIABLE
+///   TYPE_ALIAS
 ///   TYPE_PARAMETER
 ///   UNIT_TEST_GROUP
 ///   UNIT_TEST_TEST
@@ -1776,6 +1777,8 @@
   static const ElementKind TOP_LEVEL_VARIABLE =
       ElementKind._('TOP_LEVEL_VARIABLE');
 
+  static const ElementKind TYPE_ALIAS = ElementKind._('TYPE_ALIAS');
+
   static const ElementKind TYPE_PARAMETER = ElementKind._('TYPE_PARAMETER');
 
   static const ElementKind UNIT_TEST_GROUP = ElementKind._('UNIT_TEST_GROUP');
@@ -1809,6 +1812,7 @@
     PREFIX,
     SETTER,
     TOP_LEVEL_VARIABLE,
+    TYPE_ALIAS,
     TYPE_PARAMETER,
     UNIT_TEST_GROUP,
     UNIT_TEST_TEST,
@@ -1868,6 +1872,8 @@
         return SETTER;
       case 'TOP_LEVEL_VARIABLE':
         return TOP_LEVEL_VARIABLE;
+      case 'TYPE_ALIAS':
+        return TYPE_ALIAS;
       case 'TYPE_PARAMETER':
         return TYPE_PARAMETER;
       case 'UNIT_TEST_GROUP':
@@ -2291,6 +2297,7 @@
 ///   TOP_LEVEL_SETTER_DECLARATION
 ///   TOP_LEVEL_SETTER_REFERENCE
 ///   TOP_LEVEL_VARIABLE_DECLARATION
+///   TYPE_ALIAS
 ///   TYPE_NAME_DYNAMIC
 ///   TYPE_PARAMETER
 ///   UNRESOLVED_INSTANCE_MEMBER_REFERENCE
@@ -2512,6 +2519,9 @@
   static const HighlightRegionType TOP_LEVEL_VARIABLE_DECLARATION =
       HighlightRegionType._('TOP_LEVEL_VARIABLE_DECLARATION');
 
+  static const HighlightRegionType TYPE_ALIAS =
+      HighlightRegionType._('TYPE_ALIAS');
+
   static const HighlightRegionType TYPE_NAME_DYNAMIC =
       HighlightRegionType._('TYPE_NAME_DYNAMIC');
 
@@ -2595,6 +2605,7 @@
     TOP_LEVEL_SETTER_DECLARATION,
     TOP_LEVEL_SETTER_REFERENCE,
     TOP_LEVEL_VARIABLE_DECLARATION,
+    TYPE_ALIAS,
     TYPE_NAME_DYNAMIC,
     TYPE_PARAMETER,
     UNRESOLVED_INSTANCE_MEMBER_REFERENCE,
@@ -2746,6 +2757,8 @@
         return TOP_LEVEL_SETTER_REFERENCE;
       case 'TOP_LEVEL_VARIABLE_DECLARATION':
         return TOP_LEVEL_VARIABLE_DECLARATION;
+      case 'TYPE_ALIAS':
+        return TYPE_ALIAS;
       case 'TYPE_NAME_DYNAMIC':
         return TYPE_NAME_DYNAMIC;
       case 'TYPE_PARAMETER':
diff --git a/pkg/analysis_server_client/lib/src/protocol/protocol_constants.dart b/pkg/analysis_server_client/lib/src/protocol/protocol_constants.dart
index ff997f0..9b566ba 100644
--- a/pkg/analysis_server_client/lib/src/protocol/protocol_constants.dart
+++ b/pkg/analysis_server_client/lib/src/protocol/protocol_constants.dart
@@ -6,7 +6,7 @@
 // To regenerate the file, use the script
 // "pkg/analysis_server/tool/spec/generate_files".
 
-const String PROTOCOL_VERSION = '1.32.3';
+const String PROTOCOL_VERSION = '1.32.4';
 
 const String ANALYSIS_NOTIFICATION_ANALYZED_FILES = 'analysis.analyzedFiles';
 const String ANALYSIS_NOTIFICATION_ANALYZED_FILES_DIRECTORIES = 'directories';
diff --git a/pkg/analyzer/lib/src/generated/ffi_verifier.dart b/pkg/analyzer/lib/src/generated/ffi_verifier.dart
index 8cc04cf..8a32c10 100644
--- a/pkg/analyzer/lib/src/generated/ffi_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/ffi_verifier.dart
@@ -85,7 +85,7 @@
     // No classes from the FFI may be explicitly implemented.
     void checkSupertype(TypeName typename, FfiCode subtypeOfFfiCode,
         FfiCode subtypeOfStructCode) {
-      final superName = typename.name.staticElement?.name;
+      final superName = typename.name?.staticElement?.name;
       if (superName == _allocatorClassName) {
         return;
       }
@@ -139,9 +139,9 @@
 
   @override
   void visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
-    Element element = node.staticElement;
+    Element element = node?.staticElement;
     if (element is MethodElement) {
-      Element enclosingElement = element.enclosingElement;
+      Element enclosingElement = element?.enclosingElement;
       if (enclosingElement is ExtensionElement) {
         if (_isAllocatorExtension(enclosingElement) &&
             element.name == _allocateExtensionMethodName) {
@@ -154,7 +154,7 @@
 
   @override
   void visitIndexExpression(IndexExpression node) {
-    Element element = node.staticElement;
+    Element element = node?.staticElement;
     Element enclosingElement = element?.enclosingElement;
     if (enclosingElement is ExtensionElement) {
       if (_isNativeStructPointerExtension(enclosingElement)) {
@@ -167,7 +167,7 @@
 
   @override
   void visitMethodInvocation(MethodInvocation node) {
-    Element element = node.methodName.staticElement;
+    Element element = node.methodName?.staticElement;
     if (element is MethodElement) {
       Element enclosingElement = element.enclosingElement;
       if (enclosingElement is ClassElement) {
@@ -190,7 +190,7 @@
         }
       }
     } else if (element is FunctionElement) {
-      Element enclosingElement = element.enclosingElement;
+      Element enclosingElement = element?.enclosingElement;
       if (enclosingElement is CompilationUnitElement) {
         if (element.library.name == 'dart.ffi') {
           if (element.name == 'sizeOf') {
@@ -468,6 +468,9 @@
   }
 
   void _validateAllocate(FunctionExpressionInvocation node) {
+    if (node.typeArgumentTypes.length != 1) {
+      return;
+    }
     final DartType dartType = node.typeArgumentTypes[0];
     if (!_isValidFfiNativeType(dartType, true, true)) {
       final AstNode errorNode = node;
@@ -631,7 +634,7 @@
 
   void _validateElementAt(MethodInvocation node) {
     Expression target = node.realTarget;
-    DartType targetType = target.staticType;
+    DartType targetType = target?.staticType;
     if (targetType is InterfaceType &&
         _isPointer(targetType.element) &&
         targetType.typeArguments.length == 1) {
@@ -772,7 +775,7 @@
   }
 
   void _validateRefIndexed(IndexExpression node) {
-    DartType targetType = node.target.staticType;
+    DartType targetType = node.target?.staticType;
     if (!_isValidFfiNativeType(targetType, false, true)) {
       final AstNode errorNode = node;
       _errorReporter.reportErrorForNode(
@@ -792,7 +795,7 @@
   }
 
   void _validateRefPropertyAccess(PropertyAccess node) {
-    DartType targetType = node.target.staticType;
+    DartType targetType = node.target?.staticType;
     if (!_isValidFfiNativeType(targetType, false, true)) {
       final AstNode errorNode = node;
       _errorReporter.reportErrorForNode(
@@ -801,6 +804,9 @@
   }
 
   void _validateSizeOf(MethodInvocation node) {
+    if (node.typeArgumentTypes.length != 1) {
+      return;
+    }
     final DartType T = node.typeArgumentTypes[0];
     if (!_isValidFfiNativeType(T, true, true)) {
       final AstNode errorNode = node;
diff --git a/pkg/analyzer_plugin/doc/api.html b/pkg/analyzer_plugin/doc/api.html
index dd53e3b..664cdce 100644
--- a/pkg/analyzer_plugin/doc/api.html
+++ b/pkg/analyzer_plugin/doc/api.html
@@ -1294,7 +1294,7 @@
       An enumeration of the kinds of elements.
     </p>
     
-  <dl><dt class="value">CLASS</dt><dt class="value">CLASS_TYPE_ALIAS</dt><dt class="value">COMPILATION_UNIT</dt><dt class="value">CONSTRUCTOR</dt><dt class="value">CONSTRUCTOR_INVOCATION</dt><dt class="value">ENUM</dt><dt class="value">ENUM_CONSTANT</dt><dt class="value">EXTENSION</dt><dt class="value">FIELD</dt><dt class="value">FILE</dt><dt class="value">FUNCTION</dt><dt class="value">FUNCTION_INVOCATION</dt><dt class="value">FUNCTION_TYPE_ALIAS</dt><dt class="value">GETTER</dt><dt class="value">LABEL</dt><dt class="value">LIBRARY</dt><dt class="value">LOCAL_VARIABLE</dt><dt class="value">METHOD</dt><dt class="value">MIXIN</dt><dt class="value">PARAMETER</dt><dt class="value">PREFIX</dt><dt class="value">SETTER</dt><dt class="value">TOP_LEVEL_VARIABLE</dt><dt class="value">TYPE_PARAMETER</dt><dt class="value">UNIT_TEST_GROUP</dt><dt class="value">UNIT_TEST_TEST</dt><dt class="value">UNKNOWN</dt></dl></dd><dt class="typeDefinition"><a name="type_FilePath">FilePath: String</a></dt><dd>
+  <dl><dt class="value">CLASS</dt><dt class="value">CLASS_TYPE_ALIAS</dt><dt class="value">COMPILATION_UNIT</dt><dt class="value">CONSTRUCTOR</dt><dt class="value">CONSTRUCTOR_INVOCATION</dt><dt class="value">ENUM</dt><dt class="value">ENUM_CONSTANT</dt><dt class="value">EXTENSION</dt><dt class="value">FIELD</dt><dt class="value">FILE</dt><dt class="value">FUNCTION</dt><dt class="value">FUNCTION_INVOCATION</dt><dt class="value">FUNCTION_TYPE_ALIAS</dt><dt class="value">GETTER</dt><dt class="value">LABEL</dt><dt class="value">LIBRARY</dt><dt class="value">LOCAL_VARIABLE</dt><dt class="value">METHOD</dt><dt class="value">MIXIN</dt><dt class="value">PARAMETER</dt><dt class="value">PREFIX</dt><dt class="value">SETTER</dt><dt class="value">TOP_LEVEL_VARIABLE</dt><dt class="value">TYPE_ALIAS</dt><dt class="value">TYPE_PARAMETER</dt><dt class="value">UNIT_TEST_GROUP</dt><dt class="value">UNIT_TEST_TEST</dt><dt class="value">UNKNOWN</dt></dl></dd><dt class="typeDefinition"><a name="type_FilePath">FilePath: String</a></dt><dd>
     
     <p>
       The absolute, normalized path of a file.
@@ -1397,7 +1397,7 @@
       </dd><dt class="value">TOP_LEVEL_VARIABLE</dt><dd>
         
         <p>Deprecated - no longer sent.</p>
-      </dd><dt class="value">PARAMETER_DECLARATION</dt><dt class="value">PARAMETER_REFERENCE</dt><dt class="value">STATIC_FIELD_DECLARATION</dt><dt class="value">STATIC_GETTER_DECLARATION</dt><dt class="value">STATIC_GETTER_REFERENCE</dt><dt class="value">STATIC_METHOD_DECLARATION</dt><dt class="value">STATIC_METHOD_REFERENCE</dt><dt class="value">STATIC_SETTER_DECLARATION</dt><dt class="value">STATIC_SETTER_REFERENCE</dt><dt class="value">TOP_LEVEL_FUNCTION_DECLARATION</dt><dt class="value">TOP_LEVEL_FUNCTION_REFERENCE</dt><dt class="value">TOP_LEVEL_GETTER_DECLARATION</dt><dt class="value">TOP_LEVEL_GETTER_REFERENCE</dt><dt class="value">TOP_LEVEL_SETTER_DECLARATION</dt><dt class="value">TOP_LEVEL_SETTER_REFERENCE</dt><dt class="value">TOP_LEVEL_VARIABLE_DECLARATION</dt><dt class="value">TYPE_NAME_DYNAMIC</dt><dt class="value">TYPE_PARAMETER</dt><dt class="value">UNRESOLVED_INSTANCE_MEMBER_REFERENCE</dt><dt class="value">VALID_STRING_ESCAPE</dt></dl></dd><dt class="typeDefinition"><a name="type_KytheEntry">KytheEntry: object</a></dt><dd>
+      </dd><dt class="value">PARAMETER_DECLARATION</dt><dt class="value">PARAMETER_REFERENCE</dt><dt class="value">STATIC_FIELD_DECLARATION</dt><dt class="value">STATIC_GETTER_DECLARATION</dt><dt class="value">STATIC_GETTER_REFERENCE</dt><dt class="value">STATIC_METHOD_DECLARATION</dt><dt class="value">STATIC_METHOD_REFERENCE</dt><dt class="value">STATIC_SETTER_DECLARATION</dt><dt class="value">STATIC_SETTER_REFERENCE</dt><dt class="value">TOP_LEVEL_FUNCTION_DECLARATION</dt><dt class="value">TOP_LEVEL_FUNCTION_REFERENCE</dt><dt class="value">TOP_LEVEL_GETTER_DECLARATION</dt><dt class="value">TOP_LEVEL_GETTER_REFERENCE</dt><dt class="value">TOP_LEVEL_SETTER_DECLARATION</dt><dt class="value">TOP_LEVEL_SETTER_REFERENCE</dt><dt class="value">TOP_LEVEL_VARIABLE_DECLARATION</dt><dt class="value">TYPE_ALIAS</dt><dt class="value">TYPE_NAME_DYNAMIC</dt><dt class="value">TYPE_PARAMETER</dt><dt class="value">UNRESOLVED_INSTANCE_MEMBER_REFERENCE</dt><dt class="value">VALID_STRING_ESCAPE</dt></dl></dd><dt class="typeDefinition"><a name="type_KytheEntry">KytheEntry: object</a></dt><dd>
     <p>
       This object matches the format and documentation of the Entry object
       documented in the
diff --git a/pkg/analyzer_plugin/lib/protocol/protocol_common.dart b/pkg/analyzer_plugin/lib/protocol/protocol_common.dart
index 89b8f94..5bdb9aa 100644
--- a/pkg/analyzer_plugin/lib/protocol/protocol_common.dart
+++ b/pkg/analyzer_plugin/lib/protocol/protocol_common.dart
@@ -1718,6 +1718,7 @@
 ///   PREFIX
 ///   SETTER
 ///   TOP_LEVEL_VARIABLE
+///   TYPE_ALIAS
 ///   TYPE_PARAMETER
 ///   UNIT_TEST_GROUP
 ///   UNIT_TEST_TEST
@@ -1776,6 +1777,8 @@
   static const ElementKind TOP_LEVEL_VARIABLE =
       ElementKind._('TOP_LEVEL_VARIABLE');
 
+  static const ElementKind TYPE_ALIAS = ElementKind._('TYPE_ALIAS');
+
   static const ElementKind TYPE_PARAMETER = ElementKind._('TYPE_PARAMETER');
 
   static const ElementKind UNIT_TEST_GROUP = ElementKind._('UNIT_TEST_GROUP');
@@ -1809,6 +1812,7 @@
     PREFIX,
     SETTER,
     TOP_LEVEL_VARIABLE,
+    TYPE_ALIAS,
     TYPE_PARAMETER,
     UNIT_TEST_GROUP,
     UNIT_TEST_TEST,
@@ -1868,6 +1872,8 @@
         return SETTER;
       case 'TOP_LEVEL_VARIABLE':
         return TOP_LEVEL_VARIABLE;
+      case 'TYPE_ALIAS':
+        return TYPE_ALIAS;
       case 'TYPE_PARAMETER':
         return TYPE_PARAMETER;
       case 'UNIT_TEST_GROUP':
@@ -2291,6 +2297,7 @@
 ///   TOP_LEVEL_SETTER_DECLARATION
 ///   TOP_LEVEL_SETTER_REFERENCE
 ///   TOP_LEVEL_VARIABLE_DECLARATION
+///   TYPE_ALIAS
 ///   TYPE_NAME_DYNAMIC
 ///   TYPE_PARAMETER
 ///   UNRESOLVED_INSTANCE_MEMBER_REFERENCE
@@ -2512,6 +2519,9 @@
   static const HighlightRegionType TOP_LEVEL_VARIABLE_DECLARATION =
       HighlightRegionType._('TOP_LEVEL_VARIABLE_DECLARATION');
 
+  static const HighlightRegionType TYPE_ALIAS =
+      HighlightRegionType._('TYPE_ALIAS');
+
   static const HighlightRegionType TYPE_NAME_DYNAMIC =
       HighlightRegionType._('TYPE_NAME_DYNAMIC');
 
@@ -2595,6 +2605,7 @@
     TOP_LEVEL_SETTER_DECLARATION,
     TOP_LEVEL_SETTER_REFERENCE,
     TOP_LEVEL_VARIABLE_DECLARATION,
+    TYPE_ALIAS,
     TYPE_NAME_DYNAMIC,
     TYPE_PARAMETER,
     UNRESOLVED_INSTANCE_MEMBER_REFERENCE,
@@ -2746,6 +2757,8 @@
         return TOP_LEVEL_SETTER_REFERENCE;
       case 'TOP_LEVEL_VARIABLE_DECLARATION':
         return TOP_LEVEL_VARIABLE_DECLARATION;
+      case 'TYPE_ALIAS':
+        return TYPE_ALIAS;
       case 'TYPE_NAME_DYNAMIC':
         return TYPE_NAME_DYNAMIC;
       case 'TYPE_PARAMETER':
diff --git a/pkg/analyzer_plugin/test/integration/support/protocol_matchers.dart b/pkg/analyzer_plugin/test/integration/support/protocol_matchers.dart
index 3ac543a..e93caa5 100644
--- a/pkg/analyzer_plugin/test/integration/support/protocol_matchers.dart
+++ b/pkg/analyzer_plugin/test/integration/support/protocol_matchers.dart
@@ -259,6 +259,7 @@
 ///   PREFIX
 ///   SETTER
 ///   TOP_LEVEL_VARIABLE
+///   TYPE_ALIAS
 ///   TYPE_PARAMETER
 ///   UNIT_TEST_GROUP
 ///   UNIT_TEST_TEST
@@ -288,6 +289,7 @@
   'PREFIX',
   'SETTER',
   'TOP_LEVEL_VARIABLE',
+  'TYPE_ALIAS',
   'TYPE_PARAMETER',
   'UNIT_TEST_GROUP',
   'UNIT_TEST_TEST',
@@ -420,6 +422,7 @@
 ///   TOP_LEVEL_SETTER_DECLARATION
 ///   TOP_LEVEL_SETTER_REFERENCE
 ///   TOP_LEVEL_VARIABLE_DECLARATION
+///   TYPE_ALIAS
 ///   TYPE_NAME_DYNAMIC
 ///   TYPE_PARAMETER
 ///   UNRESOLVED_INSTANCE_MEMBER_REFERENCE
@@ -495,6 +498,7 @@
   'TOP_LEVEL_SETTER_DECLARATION',
   'TOP_LEVEL_SETTER_REFERENCE',
   'TOP_LEVEL_VARIABLE_DECLARATION',
+  'TYPE_ALIAS',
   'TYPE_NAME_DYNAMIC',
   'TYPE_PARAMETER',
   'UNRESOLVED_INSTANCE_MEMBER_REFERENCE',
diff --git a/pkg/analyzer_plugin/tool/spec/common_types_spec.html b/pkg/analyzer_plugin/tool/spec/common_types_spec.html
index df7fa1c..c2562cf 100644
--- a/pkg/analyzer_plugin/tool/spec/common_types_spec.html
+++ b/pkg/analyzer_plugin/tool/spec/common_types_spec.html
@@ -6,7 +6,7 @@
 </head>
 <body>
 <h1>Common Types</h1>
-<version>1.4.1</version>
+<version>1.4.2</version>
 <p>
   This document contains a specification of the types that are common between
   the analysis server wire protocol and the analysis server plugin wire
@@ -550,6 +550,7 @@
       <value><code>PREFIX</code></value>
       <value><code>SETTER</code></value>
       <value><code>TOP_LEVEL_VARIABLE</code></value>
+      <value><code>TYPE_ALIAS</code></value>
       <value><code>TYPE_PARAMETER</code></value>
       <value><code>UNIT_TEST_GROUP</code></value>
       <value><code>UNIT_TEST_TEST</code></value>
@@ -817,6 +818,9 @@
       <value>
         <code>TOP_LEVEL_VARIABLE_DECLARATION</code>
       </value>
+      <value>
+        <code>TYPE_ALIAS</code>
+      </value>
       <value><code>TYPE_NAME_DYNAMIC</code></value>
       <value><code>TYPE_PARAMETER</code></value>
       <value>
diff --git a/tools/VERSION b/tools/VERSION
index e3cb26f..382c739 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 12
 PATCH 0
-PRERELEASE 256
+PRERELEASE 257
 PRERELEASE_PATCH 0
\ No newline at end of file