diff --git a/pkg/analysis_server/test/integration/edit/get_fixes_test.dart b/pkg/analysis_server/test/integration/edit/get_fixes_test.dart
index e251f77..f68d12e 100644
--- a/pkg/analysis_server/test/integration/edit/get_fixes_test.dart
+++ b/pkg/analysis_server/test/integration/edit/get_fixes_test.dart
@@ -64,8 +64,4 @@
 class GetFixesTest_UseCFE extends GetFixesTest {
   @override
   bool get useCFE => true;
-
-  @override
-  @failingTest
-  test_has_fixes() => super.test_has_fixes();
 }
diff --git a/pkg/analyzer/lib/error/error.dart b/pkg/analyzer/lib/error/error.dart
index 7a74867..b4cf527 100644
--- a/pkg/analyzer/lib/error/error.dart
+++ b/pkg/analyzer/lib/error/error.dart
@@ -117,6 +117,7 @@
   CompileTimeErrorCode.DUPLICATE_DEFINITION_INHERITANCE,
   CompileTimeErrorCode.DUPLICATE_NAMED_ARGUMENT,
   CompileTimeErrorCode.DUPLICATE_PART,
+  CompileTimeErrorCode.ENUM_CONSTANT_WITH_ENUM_NAME,
   CompileTimeErrorCode.EXPORT_INTERNAL_LIBRARY,
   CompileTimeErrorCode.EXPORT_OF_NON_LIBRARY,
   CompileTimeErrorCode.EXTENDS_DEFERRED_CLASS,
diff --git a/pkg/analyzer/lib/src/error/codes.dart b/pkg/analyzer/lib/src/error/codes.dart
index f52e45d..49a4b15 100644
--- a/pkg/analyzer/lib/src/error/codes.dart
+++ b/pkg/analyzer/lib/src/error/codes.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.
 
-library analyzer.src.error.codes;
-
 import 'package:analyzer/error/error.dart';
 
 export 'package:analyzer/src/analysis_options/error/option_codes.dart';
@@ -889,6 +887,9 @@
           correction: "Try removing one of the named arguments, or "
               "correcting one of the names to reference a different named parameter.");
 
+  static const CompileTimeErrorCode ENUM_CONSTANT_WITH_ENUM_NAME =
+      const CompileTimeErrorCode.fromFasta('ENUM_CONSTANT_WITH_ENUM_NAME');
+
   /**
    * SDK implementation libraries can be exported only by other SDK libraries.
    *
diff --git a/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart b/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart
index 0a6d21d..f60a739 100644
--- a/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart
+++ b/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart
@@ -677,13 +677,6 @@
 
   @override
   @failingTest
-  test_duplicateDefinition_typeParameters() async {
-    // Expected 1 errors of type CompileTimeErrorCode.DUPLICATE_DEFINITION, found 0
-    await super.test_duplicateDefinition_typeParameters();
-  }
-
-  @override
-  @failingTest
   test_duplicateDefinitionInheritance_instanceGetter_staticGetter() async {
     // Expected 1 errors of type CompileTimeErrorCode.DUPLICATE_DEFINITION_INHERITANCE, found 0
     await super
@@ -1600,20 +1593,6 @@
 
   @override
   @failingTest
-  test_mixinDeclaresConstructor_classDeclaration() async {
-    // Expected 1 errors of type CompileTimeErrorCode.MIXIN_DECLARES_CONSTRUCTOR, found 0
-    await super.test_mixinDeclaresConstructor_classDeclaration();
-  }
-
-  @override
-  @failingTest
-  test_mixinDeclaresConstructor_typeAlias() async {
-    // Expected 1 errors of type CompileTimeErrorCode.MIXIN_DECLARES_CONSTRUCTOR, found 0
-    await super.test_mixinDeclaresConstructor_typeAlias();
-  }
-
-  @override
-  @failingTest
   test_mixinDeferredClass() async {
     // Expected 1 errors of type CompileTimeErrorCode.MIXIN_DEFERRED_CLASS, found 0;
     //          0 errors of type HintCode.UNUSED_IMPORT, found 1 (21)
@@ -2376,25 +2355,6 @@
 
   @override
   @failingTest
-  test_privateOptionalParameter() async {
-    // Expected 1 errors of type CompileTimeErrorCode.PRIVATE_OPTIONAL_PARAMETER, found 0
-    await super.test_privateOptionalParameter();
-  }
-
-  @override
-  @failingTest
-  test_privateOptionalParameter_fieldFormal() async {
-    // Expected 1 errors of type CompileTimeErrorCode.PRIVATE_OPTIONAL_PARAMETER, found 0
-    await super.test_privateOptionalParameter_fieldFormal();
-  }
-
-  @override
-  @failingTest
-  test_privateOptionalParameter_withDefaultValue() async {
-    // Expected 1 errors of type CompileTimeErrorCode.PRIVATE_OPTIONAL_PARAMETER, found 0
-    await super.test_privateOptionalParameter_withDefaultValue();
-  }
-
   @override
   @failingTest
   test_recursiveCompileTimeConstant() async {
diff --git a/pkg/analyzer/test/generated/static_type_warning_code_kernel_test.dart b/pkg/analyzer/test/generated/static_type_warning_code_kernel_test.dart
index 92509f6..fd5c686 100644
--- a/pkg/analyzer/test/generated/static_type_warning_code_kernel_test.dart
+++ b/pkg/analyzer/test/generated/static_type_warning_code_kernel_test.dart
@@ -854,13 +854,6 @@
 
   @override
   @failingTest
-  test_undefinedSuperSetter() async {
-    // Expected 1 errors of type StaticTypeWarningCode.UNDEFINED_SUPER_SETTER, found 0
-    await super.test_undefinedSuperSetter();
-  }
-
-  @override
-  @failingTest
   test_unqualifiedReferenceToNonLocalStaticMember_getter() async {
     // Expected 1 errors of type StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER, found 0
     await super.test_unqualifiedReferenceToNonLocalStaticMember_getter();
diff --git a/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart b/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
index f9fd7bc..15e7be4 100644
--- a/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
+++ b/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
@@ -1449,27 +1449,6 @@
   @override
   @failingTest
   @potentialAnalyzerProblem
-  test_typeParameterReferencedByStatic_field() async {
-    return super.test_typeParameterReferencedByStatic_field();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
-  test_typeParameterReferencedByStatic_getter() async {
-    return super.test_typeParameterReferencedByStatic_getter();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
-  test_typeParameterReferencedByStatic_methodBodyReference() async {
-    return super.test_typeParameterReferencedByStatic_methodBodyReference();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
   test_typeParameterReferencedByStatic_methodParameter() async {
     return super.test_typeParameterReferencedByStatic_methodParameter();
   }
@@ -1477,13 +1456,6 @@
   @override
   @failingTest
   @potentialAnalyzerProblem
-  test_typeParameterReferencedByStatic_methodReturn() async {
-    return super.test_typeParameterReferencedByStatic_methodReturn();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
   test_typeParameterReferencedByStatic_setter() async {
     return super.test_typeParameterReferencedByStatic_setter();
   }
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
index b793f1b..8bbf0b4 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
@@ -247,13 +247,6 @@
   test_removeFile_invalidate_importers() async {
     await super.test_removeFile_invalidate_importers();
   }
-
-  @failingTest
-  @potentialAnalyzerProblem
-  @override
-  test_results_order() async {
-    await super.test_results_order();
-  }
 }
 
 /// Tests marked with this annotation fail because of an Analyzer problem.
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 7242425..07898d9 100644
--- a/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
+++ b/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
@@ -2069,10 +2069,9 @@
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
 const Code<Message Function(String name)> codeEnumConstantSameNameAsEnclosing =
-    const Code<Message Function(String name)>(
-  "EnumConstantSameNameAsEnclosing",
-  templateEnumConstantSameNameAsEnclosing,
-);
+    const Code<Message Function(String name)>("EnumConstantSameNameAsEnclosing",
+        templateEnumConstantSameNameAsEnclosing,
+        analyzerCode: "ENUM_CONSTANT_WITH_ENUM_NAME", dart2jsCode: "*fatal*");
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
 Message _withArgumentsEnumConstantSameNameAsEnclosing(String name) {
@@ -3001,9 +3000,8 @@
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
 const Code<Message Function(String name)> codeIllegalMixinDueToConstructors =
     const Code<Message Function(String name)>(
-  "IllegalMixinDueToConstructors",
-  templateIllegalMixinDueToConstructors,
-);
+        "IllegalMixinDueToConstructors", templateIllegalMixinDueToConstructors,
+        analyzerCode: "MIXIN_DECLARES_CONSTRUCTOR", dart2jsCode: "*fatal*");
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
 Message _withArgumentsIllegalMixinDueToConstructors(String name) {
@@ -4789,6 +4787,8 @@
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
 const MessageCode messageNonInstanceTypeVariableUse = const MessageCode(
     "NonInstanceTypeVariableUse",
+    analyzerCode: "TYPE_PARAMETER_REFERENCED_BY_STATIC",
+    dart2jsCode: "*fatal*",
     severity: Severity.errorLegacyWarning,
     message: r"""Can only use type variables in instance methods.""");
 
@@ -5052,6 +5052,8 @@
     codeOverrideFewerNamedArguments =
     const Code<Message Function(String name, String name2)>(
         "OverrideFewerNamedArguments", templateOverrideFewerNamedArguments,
+        analyzerCode: "INVALID_OVERRIDE_NAMED",
+        dart2jsCode: "*fatal*",
         severity: Severity.errorLegacyWarning);
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -5110,6 +5112,8 @@
     const Code<Message Function(String name, String name2, String name3)>(
         "OverrideMismatchNamedParameter",
         templateOverrideMismatchNamedParameter,
+        analyzerCode: "INVALID_OVERRIDE_NAMED",
+        dart2jsCode: "*fatal*",
         severity: Severity.errorLegacyWarning);
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -5564,6 +5568,7 @@
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
 const MessageCode messagePrivateNamedParameter = const MessageCode(
     "PrivateNamedParameter",
+    analyzerCode: "PRIVATE_OPTIONAL_PARAMETER",
     dart2jsCode: "*ignored*",
     message: r"""An optional named parameter can't start with '_'.""");
 
@@ -6007,7 +6012,7 @@
 const Code<Message Function(String name)> codeSuperclassHasNoSetter =
     const Code<Message Function(String name)>(
         "SuperclassHasNoSetter", templateSuperclassHasNoSetter,
-        analyzerCode: "ABSTRACT_SUPER_MEMBER_REFERENCE",
+        analyzerCode: "UNDEFINED_SUPER_SETTER",
         severity: Severity.errorLegacyWarning);
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -6291,6 +6296,8 @@
 const Code<Message Function(String name)> codeTypeNotFound =
     const Code<Message Function(String name)>(
         "TypeNotFound", templateTypeNotFound,
+        analyzerCode: "UNDEFINED_CLASS",
+        dart2jsCode: "*fatal*",
         severity: Severity.errorLegacyWarning);
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -6306,6 +6313,8 @@
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
 const MessageCode messageTypeVariableDuplicatedName = const MessageCode(
     "TypeVariableDuplicatedName",
+    analyzerCode: "DUPLICATE_DEFINITION",
+    dart2jsCode: "*fatal*",
     message: r"""A type variable can't have the same name as another.""");
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -6335,6 +6344,8 @@
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
 const MessageCode messageTypeVariableInStaticContext = const MessageCode(
     "TypeVariableInStaticContext",
+    analyzerCode: "TYPE_PARAMETER_REFERENCED_BY_STATIC",
+    dart2jsCode: "*fatal*",
     severity: Severity.errorLegacyWarning,
     message: r"""Type variables can't be used in static members.""");
 
diff --git a/pkg/front_end/messages.status b/pkg/front_end/messages.status
index 14000d1..9449a2c 100644
--- a/pkg/front_end/messages.status
+++ b/pkg/front_end/messages.status
@@ -117,7 +117,6 @@
 DuplicatedName/example: Fail
 DuplicatedParameterName/example: Fail
 Encoding/analyzerCode: Fail
-EnumConstantSameNameAsEnclosing/analyzerCode: Fail
 EnumConstantSameNameAsEnclosing/example: Fail
 EqualityCannotBeEqualityOperand/script1: Fail
 EqualityCannotBeEqualityOperand/script2: Fail
@@ -191,7 +190,6 @@
 IllegalAssignmentToNonAssignable/script1: Fail
 IllegalMixin/analyzerCode: Fail
 IllegalMixin/example: Fail
-IllegalMixinDueToConstructors/analyzerCode: Fail
 IllegalMixinDueToConstructors/example: Fail
 ImplementsBeforeExtends/script: Fail
 ImplementsBeforeWith/script: Fail
@@ -252,7 +250,6 @@
 NoUnnamedConstructorInObject/analyzerCode: Fail
 NoUnnamedConstructorInObject/example: Fail
 NonAsciiIdentifier/expression: Fail
-NonInstanceTypeVariableUse/analyzerCode: Fail
 NonInstanceTypeVariableUse/example: Fail
 NonPartOfDirectiveInPart/script1: Fail
 NotAPrefixInTypeAnnotation/example: Fail
@@ -266,10 +263,8 @@
 OperatorParameterMismatch2/example: Fail
 OperatorWithOptionalFormals/analyzerCode: Fail
 OperatorWithOptionalFormals/example: Fail
-OverrideFewerNamedArguments/analyzerCode: Fail
 OverrideFewerNamedArguments/example: Fail
 OverrideFewerPositionalArguments/example: Fail
-OverrideMismatchNamedParameter/analyzerCode: Fail
 OverrideMismatchNamedParameter/example: Fail
 OverrideMoreRequiredArguments/example: Fail
 OverrideTypeMismatchParameter/example: Fail
@@ -301,7 +296,6 @@
 PrefixAfterCombinator/example: Fail
 PreviousUseOfName/analyzerCode: Fail
 PreviousUseOfName/example: Fail
-PrivateNamedParameter/analyzerCode: Fail
 PrivateNamedParameter/example: Fail
 RedirectingConstructorWithBody/script1: Fail
 RedirectionInNonFactory/script1: Fail
@@ -357,11 +351,8 @@
 TypeAfterVar/example: Fail
 TypeArgumentMismatch/example: Fail
 TypeArgumentsOnTypeVariable/script1: Fail
-TypeNotFound/analyzerCode: Fail
 TypeNotFound/example: Fail
-TypeVariableDuplicatedName/analyzerCode: Fail
 TypeVariableDuplicatedName/example: Fail
-TypeVariableInStaticContext/analyzerCode: Fail
 TypeVariableInStaticContext/example: Fail
 TypeVariableSameNameAsEnclosing/analyzerCode: Fail
 TypeVariableSameNameAsEnclosing/example: Fail
diff --git a/pkg/front_end/messages.yaml b/pkg/front_end/messages.yaml
index 6072285..0d992e9 100644
--- a/pkg/front_end/messages.yaml
+++ b/pkg/front_end/messages.yaml
@@ -1013,6 +1013,7 @@
 
 PrivateNamedParameter:
   template: "An optional named parameter can't start with '_'."
+  analyzerCode: PRIVATE_OPTIONAL_PARAMETER
   dart2jsCode: "*ignored*"
 
 NoFormals:
@@ -1130,10 +1131,14 @@
 TypeNotFound:
   template: "Type '#name' not found."
   severity: ERROR_LEGACY_WARNING
+  analyzerCode: UNDEFINED_CLASS
+  dart2jsCode: "*fatal*"
 
 NonInstanceTypeVariableUse:
   template: "Can only use type variables in instance methods."
   severity: ERROR_LEGACY_WARNING
+  analyzerCode: TYPE_PARAMETER_REFERENCED_BY_STATIC
+  dart2jsCode: "*fatal*"
 
 GetterNotFound:
   template: "Getter not found: '#name'."
@@ -1507,6 +1512,8 @@
 
 IllegalMixinDueToConstructors:
   template: "Can't use '#name' as a mixin because it has constructors."
+  analyzerCode: MIXIN_DECLARES_CONSTRUCTOR
+  dart2jsCode: "*fatal*"
 
 IllegalMixinDueToConstructorsCause:
   template: "This constructor prevents using '#name' as a mixin."
@@ -1632,10 +1639,14 @@
 OverrideMismatchNamedParameter:
   template: "The method '#name' doesn't have the named parameter '#name2' of overriden method '#name3'."
   severity: ERROR_LEGACY_WARNING
+  analyzerCode: INVALID_OVERRIDE_NAMED
+  dart2jsCode: "*fatal*"
 
 OverrideFewerNamedArguments:
   template: "The method '#name' has fewer named arguments than those of overridden method '#name2'."
   severity: ERROR_LEGACY_WARNING
+  analyzerCode: INVALID_OVERRIDE_NAMED
+  dart2jsCode: "*fatal*"
 
 OverrideFewerPositionalArguments:
   template: "The method '#name' has fewer positional arguments than those of overridden method '#name2'."
@@ -1669,6 +1680,8 @@
 
 TypeVariableDuplicatedName:
   template: "A type variable can't have the same name as another."
+  analyzerCode: DUPLICATE_DEFINITION
+  dart2jsCode: "*fatal*"
 
 TypeVariableDuplicatedNameCause:
   template: "The other type variable named '#name'."
@@ -1926,6 +1939,8 @@
 
 EnumConstantSameNameAsEnclosing:
   template: "Name of enum constant '#name' can't be the same as the enum's own name."
+  analyzerCode: ENUM_CONSTANT_WITH_ENUM_NAME
+  dart2jsCode: "*fatal*"
 
 MissingOperatorKeyword:
   template: "Operator declarations must be preceeded by the keyword 'operator'."
@@ -2052,6 +2067,8 @@
 TypeVariableInStaticContext:
   template: "Type variables can't be used in static members."
   severity: ERROR_LEGACY_WARNING
+  analyzerCode: TYPE_PARAMETER_REFERENCED_BY_STATIC
+  dart2jsCode: "*fatal*"
 
 SuperclassMethodArgumentMismatch:
   template: "Superclass doesn't have a method named '#name' with matching arguments."
@@ -2064,7 +2081,7 @@
 
 SuperclassHasNoSetter:
   template: "Superclass has no setter named '#name'."
-  analyzerCode: ABSTRACT_SUPER_MEMBER_REFERENCE
+  analyzerCode: UNDEFINED_SUPER_SETTER
   severity: ERROR_LEGACY_WARNING
 
 SuperclassHasNoMethod:
diff --git a/pkg/front_end/tool/_fasta/generate_messages.dart b/pkg/front_end/tool/_fasta/generate_messages.dart
index 5ae69a3..7e491f1 100644
--- a/pkg/front_end/tool/_fasta/generate_messages.dart
+++ b/pkg/front_end/tool/_fasta/generate_messages.dart
@@ -28,7 +28,8 @@
 
 Future<String> generateMessagesFile() async {
   Uri messagesFile = Platform.script.resolve("../../messages.yaml");
-  Map yaml = loadYaml(await new File.fromUri(messagesFile).readAsStringSync());
+  Map<dynamic, dynamic> yaml =
+      loadYaml(await new File.fromUri(messagesFile).readAsStringSync());
   StringBuffer sb = new StringBuffer();
 
   sb.writeln("""
@@ -50,7 +51,7 @@
     while (description is String) {
       description = yaml[description];
     }
-    Map map = description;
+    Map<dynamic, dynamic> map = description;
     if (map == null) {
       throw "No 'template:' in key $name.";
     }
